View Single Post
  #8  
Old April 24th, 2004, 06:37 AM

alexti alexti is offline
First Lieutenant
 
Join Date: Dec 2003
Location: Calgary, Canada
Posts: 762
Thanks: 0
Thanked 0 Times in 0 Posts
alexti is on a distinguished road
Default Re: Waiting For Game Info Hangs

It looks that the problem is that sockets are getting stuck in FIN_WAIT2 state. When the client closes the connection is send FIN,ACK and the server responds with ACK (that's something TCP/IP stack is doing independently from the application), but the server never sends FIN to the client (which he is supposed to do). This looks that the application (Dom2 server) either misses connection closed/reset notification or just doesn't close the socket because of some other reason. The FIN is sent when the application closes the socket.

This leads me to the possible cause. AFAIR, on Unices function to close the socket is called "close" and on Windows it is called "closesocket". To properly confuse things, Windows has a function "close" which has nothing to do with sockets and possibly the code that calls "close" to close the socket will even compile (but it won't result in closing the socket).

Another possibility is the difference in lingering settings.

And yet another possibility is that on Windows Illwinter uses windows-specific socket event monitoring mechanism (there is such) and there's a bug somewhere in it (for example FD_CLOSE flag is not interpreted or not specified in monitoring mask).

In all these cases it should be relatively simple to track down the problem in the debugger, so I hope this won't be as hard to find as a famous battle replay problem.
Reply With Quote