Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: socket.unbind or socket.unlisten? - socket.error: (48, 'Addressalready in use')

Reply
Thread Tools

Re: socket.unbind or socket.unlisten? - socket.error: (48, 'Addressalready in use')

 
 
Steve Holden
Guest
Posts: n/a
 
      02-01-2009
Laszlo Nagy wrote:
>
>> 8<------------------------------
>>
>>
>>> ....... Setting the
>>> SO_REUSEADDR flag on POSIX fixes this problem (don't set it on Windows,
>>> though).
>>>

>>
>> Why not? I have been merrily setting it, and I have not noticed
>> anything weird.
>> (yet)
>>

> Please see my original post. I specifically stated that I do not want to
> use setsockopt and be able to listen on the same port from many
> processes. I knew that I could use SO_REUSEADDR, but I'm heistating to
> do so. I must guarantee that only one process listens on a given port at
> the same time.
>

This appears to demonstrate a misunderstanding of the purpose of the
SO_REUSEADDR flag.

SO_REUSEADDR should be used to avoid the TIME_WAIT state when the
current listening process terminates. If you do not use it then there
will be a certain period during which no other process can listen on
that port, and it will be reusable only after the TIME_WAIT is over.
This can easily be seen by using the netstat utility.

See "Pitfall 3" in

http://www.ibm.com/developerworks/li...pit/index.html

> Maybe I could use some kind of locking, but it would be too difficult:
>
> - mutexes are great but they are platform dependent and they are not in
> the standard lib
> - the listening processes do not see each other's home directory so file
> locking cannot be used for this
> - these processes will probably listen on many ports at the same time,
> it is also a problem with mutexes/file locks (who wants 50 lock files to
> be created?)
>

Complete red herring: there is no way for multiple processes to listen
to the same port: this would lead to ambiguity in the protocol stack.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments