自己写了一个网络小程序,有客户端和服务器组成。
第一次运行一切正常,退出用户端软件,然后第二次连接服务器,报错,跟踪发现是socket变量不合法。请问各位大侠这是什么原因??我猜是服务器端没有断开连接,但是我已经写了断开连接的代码了,我重载了Csocket类的OnClose函数void CAuditSocket::OnClose(int nErrorCode)
{
linger lig;
int iLen;
lig.l_onoff=1;
lig.l_linger=0;
iLen=sizeof(struct linger);
setsockopt(m_hSocket,SOL_SOCKET,SO_LINGER,(char *)&lig,iLen);
shutdown(m_hSocket, 0);
closesocket(m_hSocket);
CSocket::OnClose(nErrorCode);
}但是上述的代码并不能使socket断开连接,这是什么原因??
第一次运行一切正常,退出用户端软件,然后第二次连接服务器,报错,跟踪发现是socket变量不合法。请问各位大侠这是什么原因??我猜是服务器端没有断开连接,但是我已经写了断开连接的代码了,我重载了Csocket类的OnClose函数void CAuditSocket::OnClose(int nErrorCode)
{
linger lig;
int iLen;
lig.l_onoff=1;
lig.l_linger=0;
iLen=sizeof(struct linger);
setsockopt(m_hSocket,SOL_SOCKET,SO_LINGER,(char *)&lig,iLen);
shutdown(m_hSocket, 0);
closesocket(m_hSocket);
CSocket::OnClose(nErrorCode);
}但是上述的代码并不能使socket断开连接,这是什么原因??
建议在其他会被调用的函数中关闭网络连接
你自己要主动调用Close关闭连接
closesocket(m_hSocket); 请问一下,这种写法正确吗????