。为什么会卡死

紧急求助。为什么会卡死。
服务器端程序主要代码:
C/C++ code


SOCKET sock= m_socket; 
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);

while(TRUE)
{
   SOCKET sock_conn = accept(sock ,(SOCKADDR*)&addrClient,&len);
   int retval = recv(sock_conn , recvBuf , buffersize ,0);  
   send(sock_conn, "1", 2 ,0);
   closesocket(sock_conn);
}



m_socket 在另一个 init 函数中初始化,代码略。

服务器程序运行一段时间后,客户端联不上去,没反应了,卡死了。
只有关闭服务器程序再次运行后又正常了。

这是怎么回事?
请各位高手不吝赐教。
谢谢。



------解决方案--------------------
你这种服务器执行主动关闭的关闭方法,要查看一下客户端socket关闭后,用tcpview或者netstat -a命令查看一下,socket是否都处于CLOSE_WAIT状态?如果是,这样并没有释放掉链接,服务器端仍然占用相应的资源,运行久了之后,就会出未知的问题。
我之前的一个东东就是出现了尴尬的CLOSE_WAIT状态
------解决方案--------------------
探讨
你这种服务器执行主动关闭的关闭方法,要查看一下客户端socket关闭后,用tcpview或者netstat -a命令查看一下,socket是否都处于CLOSE_WAIT状态?如果是,这样并没有释放掉链接,服务器端仍然占用相应的资源,运行久了之后,就会出未知的问题。
我之前的一个东东就是出现了尴尬的CLOSE_WAIT状态