Почему исключение, выброшенное из Socket.Receive, сообщает об исключении в моей программе, когда сервер закрыл соединение? - PullRequest
0 голосов
/ 11 июля 2011

У меня есть соединение, которое я закрываю на сервере (другой исполняемый файл), используя Socket.Close().В моем клиенте при вызове Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state) он выдает SocketException с указанием

An established connection was aborted by the software in your host machine

. Это создает у меня впечатление, что я закрываю соединение, заблокированное каким-либо потоком на Socket.Receive() или Socket.EndReceive().,Я что-то здесь неправильно сделал?

1 Ответ

0 голосов
/ 13 июля 2011

Протестировали ли вы с помощью функции Shutdown () перед закрытием () для грациозного закрытия сокета на стороне сервера, как задокументировано ? Я думаю, что изящное закрытие не должно приводить к тому, что клиент сообщает о разрыве соединения, это должно происходить только в том случае, если соединение сбрасывается (TCP RST).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...