如何判断socket已经关闭

2024年11月15日 12:49
有2个网友回答
网友(1):

采用CAsyncSocket::AsyncSelect(FD_CLOSE),
则在远程socket关闭的时候,会触发OnClose消息。
在OnClose里面填写
if(CAsyncSocket::m_hSocket!=INVALID_SOCKET)
{
CAsyncSocket::Close();
}
CAsyncSocket::OnClose(nErrorCode);
当远程socket关闭时,自动将自己关闭。
要判断远程是否关闭,直接判断自己的
CAsyncSocket::m_hSocket是否为INVALID_SOCKET即可。

网友(2):

看 recv 是不是返回 0 或者 负数。