C/S通讯,Server端关闭时,Client如何捕获异常作出相应判断?Client端使用NetworkStream进行收发数据,Server端在关闭时,希望Client端发现断开的异常,但是我发现使用下面代码在Server端断开时调用,在Client端捕获不到Socket异常
if (m_ClientSocket.Connected) //m_ClientSocket是在Server端获取的与Client进行通讯的socket
{
m_ClientSocket.Shutdown(SocketShutdown.Both);
}
m_ClientSocket.Close();去掉这部分代码,当Server端关闭连接的时候,可以在Client端捕获“远程主机连接断开”的异常。那位能解释一下?如何才能做到当Server端断开连接的时候,Client端可以获知连接断开的信息?
if (m_ClientSocket.Connected) //m_ClientSocket是在Server端获取的与Client进行通讯的socket
{
m_ClientSocket.Shutdown(SocketShutdown.Both);
}
m_ClientSocket.Close();去掉这部分代码,当Server端关闭连接的时候,可以在Client端捕获“远程主机连接断开”的异常。那位能解释一下?如何才能做到当Server端断开连接的时候,Client端可以获知连接断开的信息?
我试了一下,这种方法不可行,后来我使用poll函数,当服务器端断掉连接的时候,可以捕获到一个IOExceptin的异常,用以判断服务器端连接状态。