Я работаю над проектом асинхронного запроса TcpClient WPF.В котором я написал некоторый код, когда клиент отключается от сети из-за отключения сокета.Он работает нормально, и когда сокет удаляется / отключается также на стороне сервера, ни одно событие не запускается или исключение не принимается, чтобы отключить состояние клиента.Я видел об этой проблеме на многих сайтах, на каждом из которых люди говорили, что используют метод Socket.Poll
, но в моем случае это не работает.SelectMode.SelectRead
всегда возвращает true, когда клиент подключен или отключен, поэтому я не могу найти альтернативы.
Итак, я отправляю свой вопрос здесь, чтобы узнать, как найти, когда клиентский сокет отключен / сетевой доступ потерян в асинхронном режиме.Я пытался с помощью следующего кода, любой, как он не работает.
void CheckSocketStatus()
{
try
{
while (true)
{
System.Threading.Thread.Sleep(1000);
if(!mobjClient.Client.Poll(0,SelectMode.SelectWrite))
{
break;
}
}
}
catch(SocketException soex)
{
}
}
Надеюсь, кто-то может мне помочь.