title: python socket.sendto
body: <p>I'm new to python(3.3) networking programming, so to start off I was trying to write a basic traceroute program. One of the lines of code is:</p>
  
  <pre><code>send_socket.sendto(512, '', (dest_name, port))
  </code></pre>
  
  <p>I am getting an error for this line in the console stating "TypeError: 'int' does not support the buffer interface".  I tried with a sting and I got the same error with 'str' instead of 'int'. <a href="http://docs.python.org/3.3/library/socket.html#socket.socket.sendto" rel="nofollow">I also looked at the documentation</a>, and tried a couple other formulations to no avail.</p>
  
  <p>Does anyone have experience with this?</p>
  
  <pre><code>import socket
  
  def main(dest_name):
      dest_addr = socket.gethostbyname(dest_name)
      port = 33434
      icmp = socket.getprotobyname('icmp')
      udp = socket.getprotobyname('udp')
      ttl = 1
      while True:
          recv_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp)
          send_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, udp)
          send_socket.setsockopt(socket.SOL_IP, socket.IP_TTL, ttl)
          recv_socket.bind(('', port))
          send_socket.sendto('', (dest_name, port))
          curr_addr = None
          curr_name = None
          try:
              _, curr_addr = recv_socket.recvfrom(512)
              curr_addr = curr_addr[0]
              try:
                  curr_name = socket.gethostbyaddr(curr_addr)[0]
              except socket.error:
                  curr_name = curr_addr
          except socket.error:
              pass
          finally:
              send_socket.close()
              recv_socket.close()
  
          if curr_addr is not None:
              curr_host = '%s (%s)' % (curr_name, curr_addr)
          else:
              curr_host = '*'
          print "%d\t%s" % (ttl, curr_host)
  
          ttl += 1
          if curr_addr == dest_addr or ttl &gt; max_hops:
              break
  
  if __name__ == '__main__':
      main('www.google.com')
  </code></pre>