Локальное соединение закрыто, не обнаружено с помощью select - PullRequest
0 голосов
/ 27 октября 2011

Я проектирую маленький веб-сервер на C winapi.

Я использую select, чтобы обнаружить «закрытое соединение» с локального хоста (Firefox).

Я запускаю запрос с Firefox на моем локальном сервере, и мое программное обеспечение ждет, пока я не закрою соединение с Firefox (кнопка остановки).

Если я закрою соединение с Firefox примерно через десять секунд, мое программное обеспечение сможет обнаружить закрытое соединение.

Но если я закрою соединение через одну минуту, моя программа ничего не обнаружит ...

ТОЛЬКО когда я закрываю Firefox, закрытое соединение, наконец, обнаруживается или ... окончательно закрывается firefox?!

1 Ответ

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

Обнаружение закрытия сокета может зависеть от того, как / почему сокет был закрыт, а также от других характеристик соединения. Я обнаружил, что одним из способов обнаружить закрытое соединение за разумное время является попытка записи в соединение (как при установлении периодического опроса в обоих направлениях). Это должно привести к немедленной ошибке.

Как это помогает в вашем конкретном случае, я не уверен.

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