ソケットをラップするNetworkStreamの上でSslStreamを使用していますが、この状況でソケットの切断を検出するにはどうすればよいですか。
言い換えれば、リモートクライアントが接続を閉じたかどうかを検出したいのです。
ソケットをラップするNetworkStreamの上でSslStreamを使用していますが、この状況でソケットの切断を検出するにはどうすればよいですか。
言い換えれば、リモートクライアントが接続を閉じたかどうかを検出したいのです。
読み取り時にEOSが発生し、書き込み時にIOExceptionが発生します。
内部ソケットでpollメソッドを使用します。
if (client.Client.Poll(0, SelectMode.SelectRead))
{
read = 0;
read = br.Read(buffer, 0, buffer.Length);
if (read > 0)
{
Console.Write(Encoding.ASCII.GetString(buffer, 0, read));
}
else
throw new Exception("Socket closed");
}