C ++ TCP-соединение закрывается - PullRequest
0 голосов
/ 09 октября 2011

У меня есть приложение C ++ под названием A, которое открывает TCP-соединение с приложением B. Приложение C знает об этом соединении и может закрыть сокет со стороны B. Мой вопрос: как я могу узнать, закрылось ли соединение при правильном закрытии, или это проблема сетевого подключения? В настоящее время у меня есть тайм-аут, который знает, когда нет получения, но это не указывает на правильное закрытие или проблему с сетевым подключением.

Я слышал, что, поскольку это соединение TCP, если приложение C правильно закрывает соединение, ОС должна знать об этом, знаете ли вы, как я могу узнать в приложении A, что соединение закрыто правильно?

если вы можете прикрепить образец с ++, это будет полезно.

1 Ответ

0 голосов
/ 09 октября 2011

Если соединение было закрыто правильно, recv () вернет ноль.Если он был закрыт некорректно, recv () в конечном итоге истечет время ожидания (хотя для этого могут быть другие причины), а send () в конечном итоге вернет -1 с ошибкой ECONNRESET или как там это называется.

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