Обнаружение отключения сокета SslStream
Я использую SslStream поверх NetworkStream, который обертывает Socket, как я могу обнаружить разъединение Socket в этой ситуации.
Другими словами, я хочу определить, закрыл ли удаленный клиент соединение.
2 ответа
Решение
Используйте метод 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");
}