funny socket behaviour

Vasisht Tadigotla vasisht at
Wed Aug 7 20:07:22 EDT 2002


I've been using python to write client-server programs and I've run into
this type of behaviour which seems weird. I'll try to illustrate it with
some code.

> from sockets import *
> import select
> s = socket(AF_INET,SOCK_STREAM)
> s.setblocking(0)
> s.connect(('remote_server',21))

At this point an EINPROGRESS exception is thrown.
now i do a select on the socket

 if select is successful, i do a read

> s.recv(1024)

so far so good.
now i try to connect to the socket again
> s.connnect(('remote_server',21))

On SunOS, IRIX and FreeBSD, an EISCONN exception is thrown, but on Linux
it allows me to connect again to the socket after a connection has been
established. Though I cannot read/write to the socket when I connect a
second time, I think It should not allow a second connect. Any idea why
this should be happening ?



please CC as I'm not subscribed to the list.

ce .sig n'est pas une .sig

More information about the Python-list mailing list