On Fri, 24 Jun 2005 21:21:34 -0400, Peter Hansen <[EMAIL PROTECTED]> wrote: >ncf wrote: >> Heh, like I said. I was not at all sure. :P >> >> Nevertheless, could this be the problem? =\ > >You *may* correct, mainly because the OP's code doesn't appear to spawn >off new threads to handle the client connections, which means he can >handle only one connection at a time. Specifically, while he is talking >to one client he is not also in an accept() call on the server socket, >which means there will be (because of the listen(1) call) only a single >pending connection allowed in the backlog. > >I haven't attempted a thorough analysis... just this much, trying to see >whether it is obvious that the listen(1) is at fault -- and it's not >obvious. I thought this response might clarify the meaning of listen(1) >a little bit for some folks nevertheless.
The argument to listen() is only a _hint_ to the TCP/IP stack. Linux, at least, will not create a buffer large enough for only a single connection. You can test this easily: create a socket, bind it to an address, call listen(1) on it, and *don't* call accept(). Telnet (or connect somehow) repeatedly, until your connection is not accepted. On my system (Linux 2.6.10), I can connect successfully 8 times before the behavior changes. Jp -- http://mail.python.org/mailman/listinfo/python-list