title: PyQt4's udp broadcast doesn't seem to work
body: <p>My application written in PyQt4 doesn't seem to get any data.
  readyRead event isn't even fired.
  Use of the applications is following:</p>
  
  <pre><code>python server.py -s -p 50000 #(server on port 50000)
  python server.py -c -p 50000 #(client sending data to port 50000)
  </code></pre>
  
  <p>//</p>
  
  <pre><code>import sys
  import time
  
  from PyQt4 import QtNetwork, QtCore
  from optparse import OptionParser
  
  class Server(object):
  
      def __init__(self, port):
  
          self.port = port
  
          try:
              self.socket = QtNetwork.QUdpSocket()
              self.socket.bind(QtNetwork.QHostAddress.Broadcast, int(self.port), QtNetwork.QUdpSocket.ShareAddress)
  
              self.socket.readyRead.connect(self.receiver)
  
          except QtNetwork.QUdpSocket.NetworkError:
              print "EXCEPTION DURING INITIALIZING SERVER'S SOCKET"
              sys.exit(1)
  
      def receiver(self):
          print "DEBUG: RECEIVE"
          while(self.socket.hasPendingDatagrams()):
              try:
                  size = self.socket.pendingDatagramSize()
                  msg, host, port = self.socket.readDatagram(size)
              except:
                  print "EXCEPTION DURING RECEIVEING AND READING DATAGRAM"
              else:
                  print "HOST %s:%s MSG: %s" % (str(host), str(port), str(msg))
  
      def __del__(self):
          print "DESTRUCTOR"
          self.socket.close()
  
  class Client(object):
  
      def __init__(self, port):
  
          self.port = port
  
          try:
              self.socket = QtNetwork.QUdpSocket()
          except:
              print "EXCEPTION DURING INITIALIZING CLIENT'S SOCKET"
  
          self.main_loop()
  
      def main_loop(self):
          for i in range(20):
              self.debug_msg()
              time.sleep(0.5)
          print "EXITING"
          self.socket.close()
  
  
      def debug_msg(self):
          msg = "DEBUG"
          self.socket.writeDatagram(msg, QtNetwork.QHostAddress.Broadcast, int(self.port))
  
  
  if __name__ == "__main__":
  
      parser = OptionParser()
      parser.add_option("-p", "", action="store", type="string", dest="port")
      parser.add_option("-c", "", action="store_true", dest="client")
      parser.add_option("-s", "", action="store_true", dest="server")
  
      options, args = parser.parse_args()
  
      if not (options.server or options.client):
          print "Client/Server not specified. Could not continue..."
          sys.exit(1)
  
      elif not options.port:
          print "Server's port not specified. Could not continue..."
          sys.exit(1)
  
      else:
  
          if options.server:
              serv = Server(options.port)
  
              App = QtCore.QCoreApplication(sys.argv)
              sys.exit(App.exec_())
          else:
              client = Client(options.port)
  </code></pre>