getting socket.bind() exception, but no actual error
Steve Holden
steve at holdenweb.com
Mon Nov 1 16:21:35 EST 2004
Clarence Gardner wrote:
> I've got a problem that I don't see how to program around. A socket server
> that was running fine, today started getting an exception from the bind()
> call (errno 22, Invalid argument) and yet the bind had actually worked.
>
> This is apparent from this code: it prints the error message, but then
> breaks out of the loop and the listen() and accept() calls work normally.
>
> How can one handle a function that is both working and raising an
> exception?
>
> sockobj=socket(AF_INET,SOCK_STREAM)
> while True:
> try:
> sockobj.bind(('',4321))
> except socketerror,e:
> print e
> if str(e).find('in use') == -1:
> break
> print '.'
> time.sleep(1)
> sockobj.listen(5)
Is it possible you already have a process bound to that port, and that
process is handling the incoming connections?
Otherwise it sounds a little bizarre. In fact even my own attempt at
explaining doesn't ring true because on Win2k, at least, a second bind
will raise (10048, 'Address already in use'), and I get a similar error
on Linux. Rats.
I take it this code has been copied and pasted? For example, if the host
were a single space rather than an empty string /that/ might cause this
problem. Sorry I can't be more help.
regards
Steve
--
http://www.holdenweb.com
http://pydish.holdenweb.com
Holden Web LLC +1 800 494 3119
More information about the Python-list
mailing list