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