udp sockets with python

Jean-Paul Calderone calderone.jeanpaul at gmail.com
Tue Nov 9 11:20:40 EST 2010


On Nov 9, 5:20 am, Mag Gam <magaw... at gmail.com> wrote:
> Hello,
>
> When measuring round trip time for the UDP echo client/server the C
> version is much faster. I was wondering if there is anything I can do
> to speed up.
>
> My current code for client looks like this....
>
> sock=socket(AF_INET,SOCK_DGRAM)
> for x in range (1000):
>   sock.sendto("foo",(server,port))
>   a=sock.recv(256)
>
> sock.close()
>
> The server code looks like this:
> UDPsock=socket(AF_INET,SOCK_DGRAM)
> UDPSock.bind(addr)
> while 1:
>   m,c=UDPsock,recvfrom(1024)
>   UDPsock.sendto('bar',c)
>
> UDPsock.close()
>
> I am measuring the round trip time using tcpdump. The C version is
> giving me around 80 microseconds (average) and the python is giving me
> close to 300 microseconds (average).

Try replacing the hostname in your send calls with an IP address.  If
you're not passing an IP address here, then the Python version has to
do a name lookup for each send, I bet your C version is not.

Jean-Paul



More information about the Python-list mailing list