Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   разрыв соединения ТСР (http://forum.oszone.net/showthread.php?t=350247)

evpu 10-12-2021 16:12 2974815

разрыв соединения ТСР
 
Добрый день, товарищи!

Пилю ТСР сервер-клиентскую систему, сервер по привычке пишу на С в среде Debian, клиент под Вин на С#, но непонятные моменты если бывают тоже отлаживаю под Linux.

Подскажите, с ходу понять не могу, человеческое решение вопроса. Поднимаю ТСР сокет, слушаю порт через listen(), принимаю соединение через accept(), и далее слушаю порт через recv, отправляю через send, ну в общем как и описано во всех самоучителях, в неблокирующем режиме с применением select. Так вот, вопрос такой, а если клиент дал команду на закрытие сокета, как сервер может данный факт отследить? Именно когда клиент закрыл соединение явно, а не произошло тихое падение сети. Т.е что я должен прослушивать в цикле помимо recv чтобы определить отключение клиента? (то что при падении сети нужно закрывать сокет по таймауту и иначе этого не отследить - уже знаю).

На примере утилиты Essential net tools слушающей порт ТСР в режиме RAW я точно знаю, что факт закрытия порта клиентом может быть отслежен сервером абсолютно точно, если только клиент явно закрыл порт...


Время: 17:54.

Время: 17:54.
© OSzone.net 2001-