Ok так вот как обстоят дела:Использование System.Net.Socket, как мы можем узнать, когда удаленный сокет закрыт?
[Server] Start
[Server] Socket.AcceptConnection
[Client] Start
[Client] Socket.Connect
[Server] Receive //blocking
[Client] Send
[Server] Print
[Server] Receive
[Client] Close socket
Есть ли способ узнать, когда клиент, как закрыл соединение? настоящее время я использую поддельный пакета трюк, как описано в MSDN, где в отдельном потоке я делаю
[Server] socket.Send(byte[], 0,0);
И проверить, если бросить какую-либо ошибку, но это не так, даже если клиент, как закрыл сокет.
P.S. Я действительно думаю, может быть, проблема, если у меня есть сокет на стороне сервера (TCP) и TcpClient на стороне клиента?
Спасибо.
Если вы получаете FIN, то последний прием (обратный вызов или блокировка) должен быть 0 длины. Если вы это получите, проверьте состояние сокета. – FlappySocks