From: Vladimir Fekete Date: 2008-10-14T17:18:35+09:00 Subject: Re: Problem with bind for Socket class Hi, On Tue, Oct 14, 2008 at 04:26:20PM +0900, Antonin Amand wrote: > > > On Oct 14, 8:34?am, Vladimir Fekete > wrote: > > On Tue, Oct 14, 2008 at 03:30:05PM +0900, Robert Klemme wrote: > > > On 14.10.2008 07:47, Vladimir Fekete wrote: > > > > > >when I tested it it worked. But when I tried to run it again I've got error > > > >message: > > > > > >/t1.rb:10:in `bind': Address already in use - bind(2) (Errno::EADDRINUSE) > > > > ? ? ? ?from ./t1.rb:10 > > > > > >I tried to find "related" bug/problem in google but withouth success. > > > >Could anybody > > > >help me how to "unbind" socket ? Or explain me where I making mistake. I > > > >have > > > >some experiences only with WinSock API and I don't remember any unbind > > > >function. > > > > > >P.S. I'm running it on Debian Linux, Ruby version 1.8. > > > > > I remember that on some OS (or particular versions) socket cleanout is > > > delayed. ?Did you try to check with "netstat -a -n | fgrep 2201" or > > > similar to see what state the port is in? > > > > Yes you are right, after circa 5 minutes it works again. So you say it is > > problem (issue) of OS and not ruby, yes ? > > If you want to reuse the port you must set this flag on the socket > before you bind it. > When you use this kind of option you must ensure that you can't run > multiple instances of the program. > Use a lock file or something. > > socket.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true) nope, no help. I still have to wait. V. > > Cheers. > >