title: I understad why I get: TypeError: getsockaddrarg: AF_INET address must be tuple, not str
body: <p>Okey, I have been staring at this two codes for a long time, and I can't get why I receive this error: TypeError: getsockaddrarg: AF_INET address must be tuple, not str.</p>
  
  <p>code1.py:
      import socket
      s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)</p>
  
  <pre><code>import echoUDP
  
  serveraddress = '0.0.0.0'
  serverport = 5002
  
  server2 = (server_address, server_port)
  s.bind(server2)
  print("Listening on " + server_address + ":" + str(server_port))
  s.connect(('0.0.0.0',5005))
  
  while True:
      client_address = ('0.0.0.0.')
      status = 'ok'
      print("Echoing back"+ str(status) + " to " + str(client_address))
      sen = s.sendto(status.encode(),clientaddress)
  </code></pre>
  
  <p>echoUDP.py:</p>
  
  <pre><code>import socket
  
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  
  server_address = '0.0.0.0'
  server_port = 5005
  
  server = (server_address, server_port)
  sock.bind(server)
  print("Listening on " + server_address + " Port: " + str(server_port))
  sock.connect(('0.0.0.0', 5002))
  while True:
      client_address = ('0.0.0.0')
      status = 'ok'
      print("Echoing back "+ str(status) + " to " + str(client_address))
      sen = sock.sendto(status.encode(),client_address)
  </code></pre>
  
  <p>Can someone please tell what I don't get? 
  I have read the other problems about tuple, and they get it because their sendto line, the client_address is not a tuple. I thought I created this as a tuple when I write client_address = ('0.0.0.0')?</p>