title: Can't assign requested address : Python Multicasting
body: <p>I just started with networking and am writing a very simple code for multicasting. I am still not sure about the different interfaces. Some examples used "0.0.0.0" while others have used "127.0.0.1". </p>
  
  <p><strong>Code for Server</strong></p>
  
  <pre><code>import socket
  import sys
  import time
  
  ANY = socket.gethostbyname('localhost')
  S_PORT = 1501
  M_ADDR = "224.168.2.9"
  M_PORT = 1600
  
  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
  sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEPORT,1)
  sock.bind((ANY,S_PORT))
  sock.setsockopt(socket.IPPROTO_IP,socket.IP_MULTICAST_TTL,255)
  
  while 1:
      message = raw_input("Enter message: ")
      sock.sendto(message,(M_ADDR,M_PORT))
      if message == "exit":
          break
  sock.close()
  </code></pre>
  
  <p><strong>Code for Client</strong></p>
  
  <pre><code>import socket
  import time
  import sys
  
  ANY = socket.gethostbyname('localhost')
  M_ADDR = "224.168.2.9"
  M_PORT = 1600
  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
  sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEPORT,1)
  sock.bind((ANY,M_PORT))
  sock.setsockopt(socket.IPPROTO_IP,socket.IP_MULTICAST_TTL,255)
  status = sock.setsockopt(socket.IPPROTO_IP,socket.IP_ADD_MEMBERSHIP,socket.inet_aton(M_ADDR) + socket.inet_aton(ANY))
  
  while 1:
      data,addr = sock.recvfrom(1024)
      print "Received message from " + str(addr) + " : " + data
      if data == "exit":
          break
  sock.close()
  </code></pre>
  
  <p>The Client code runs properly and is waiting to receive message on the socket. But the Code Server crashes as soon as I enter any message.</p>
  
  <pre><code>Traceback (most recent call last):
    File "multicast_server.py", line 17, in &lt;module&gt;
      sock.sendto(message,(M_ADDR,M_PORT))
  socket.error: [Errno 49] Can't assign requested address
  </code></pre>
  
  <p>What is causing this issue ?
  The above code works if I use <code>ANY = "0.0.0.0"</code>. Why is that ? What changes ?</p>