title: Python asyncio: receiving broadcast UDP blocked behind Windows firewall but other python network is fine
body: <p>I have the following to <strong>receive</strong> UDP broadcast messages which works absolutely fine on my Windows 7 laptop but does not receive anything on Windows 10. I realised the difference was firewall settings on the Windows 10 was blocking python for 'public' - once I allowed it, it was fine.</p>
  <p>However, the rest of the code has various send/receive over the network functions that all work fine with the original firewall settings. Why is only this UDP broadcast receiving blocked?</p>
  <pre class="lang-py prettyprint-override"><code>class VAM_listener_protocol:
      def __init__(self):
          self.transport = None
  
      def connection_made(self, transport):
          print(&quot;connected&quot;)
          self.transport = transport
  
      def datagram_received(self, data, addr):
          print(&quot;RECD&quot;)
          
      def error_received(self, exc):
          LOG.error(f'Error received: {exc}')
  
      def connection_lost(self, exc):
          pass
  </code></pre>
  <p>Called using:</p>
  <pre class="lang-py prettyprint-override"><code>loop = asyncio.get_running_loop()
  s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
  s.bind(('',13400))  # Leaving IP blank will go to default broadcast address
  transport, protocol = await loop.create_datagram_endpoint(
              lambda: VAM_listener_protocol(),
              sock=s)
  </code></pre>