Digest Number 1946
Fredrik Lundh
fredrik at pythonware.com
Fri Mar 23 02:01:29 EST 2001
Bill Bell wrote:
> I'm new to Python, have been playing with someone's whois client,
> which contains the following lines:
>
> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> s.setblocking(1)
> s.connect((self.whoisserver, 43))
>
> The code works fine (as long as the requested whois server is
> available) if the argument to 'setblocking' is 1. However, if I change
> this to 0 I receive the diagnostic,
>
> "The socket operation could not complete without blocking."
>
> I cannot find the code that contains this literal.
did you look in the sources for your operating system? ;-)
> Would someone please suggest what might be going wrong.
nothing's going wrong here -- the system's reminding you that
when you're using non-blocking mode, the fact that connect
returns doesn't mean that it has succeeded yet.
you're supposed to catch that exception, and check for com-
pletion using select or poll. see your favourite socket pro-
gramming guide for more info.
Cheers /F
More information about the Python-list
mailing list