【发布时间】:2012-09-15 00:10:35
【问题描述】:
我在 NetworkStream 之上使用 SslStream 包装了一个 Socket,我怎么能在这种情况下检测到 Socket 断开连接。
换句话说,我想检测远程客户端是否关闭了连接。
【问题讨论】:
标签: c# sockets networkstream sslstream disconnection
我在 NetworkStream 之上使用 SslStream 包装了一个 Socket,我怎么能在这种情况下检测到 Socket 断开连接。
换句话说,我想检测远程客户端是否关闭了连接。
【问题讨论】:
标签: c# sockets networkstream sslstream disconnection
读取时会得到 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");
}
【讨论】:
read 归零。