。为什么会卡死
紧急求助。为什么会卡死。
服务器端程序主要代码:
m_socket 在另一个 init 函数中初始化,代码略。
服务器程序运行一段时间后,客户端联不上去,没反应了,卡死了。
只有关闭服务器程序再次运行后又正常了。
这是怎么回事?
请各位高手不吝赐教。
谢谢。
------解决方案--------------------
你这种服务器执行主动关闭的关闭方法,要查看一下客户端socket关闭后,用tcpview或者netstat -a命令查看一下,socket是否都处于CLOSE_WAIT状态?如果是,这样并没有释放掉链接,服务器端仍然占用相应的资源,运行久了之后,就会出未知的问题。
我之前的一个东东就是出现了尴尬的CLOSE_WAIT状态
------解决方案--------------------
服务器端程序主要代码:
- 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状态
------解决方案--------------------