It's a normal behavior when a listening  server spawn a child task to handle a client 
and then the listening server terminate with the child task still serving the 
client... When you restart, the new listening server try to rebind the same port and 
you get the error "Cannot bind". This problem is common on all systems using BSD 
sockets (solaris, Irix, linux, etc...)....

The only way I know how to fix this is to set the socket option SO_REUSEADDR (reuse 
address) when creating the socket. But to do this you have to recompile the 
application ( I guess you don't have the source code :-(  ). So I think it's just bad 
programming from Origin.

Thierry

-----Original Message-----
From:   Turgut Kalfaoglu [SMTP:[EMAIL PROTECTED]]
Sent:   Thursday, July 05, 2001 7:22 AM
To:     [EMAIL PROTECTED]
Subject:        [expert] sockets refusing to die

One of our Mandrake 7.2 servers has a very bewildering habit. 
A particular application, an Ultima Online game actually, 
if it's crashed or killed, the sockets that it had connected stay open,
sometimes for 20 minutes or more.  Doing a "socklist | grep 2593"
shows it like: 
tcp   2593          0       0      0    0
tcp   2593          0       0      0    0
meaning, no application name next to them, but they linger for forever.

Naturally, ps aux | grep wolfpack
(wolfpack is the name of the Ultima Online game) shows nothing.

How can I close these sockets, so I can restart the game? 
(if I restart the game before the sockets close, I get a 'cannot bind'
error).

Many thanks, 
 -turgut


-----
Turgut Kalfaoglu:  http://www.kalfaoglu.com
EgeNet Internet Services: http://www.egenet.com.tr
All of Turkey Online: http://find.egenet.com.tr



Reply via email to