Vladimir Fekete
10/14/2008 8:19:00 AM
Hi,
On Tue, Oct 14, 2008 at 04:26:20PM +0900, Antonin Amand wrote:
>
>
> On Oct 14, 8:34?am, Vladimir Fekete <fek...@melkor.dnp.fmph.uniba.sk>
> 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.
>
>