поэтому я пытался изучить использование опции SO_KEEPALIVE в программировании сокетов на языке C. в среде Linux.
Я создал сокет сервера и использовал мой браузер для подключения к нему. Это было успешно, и я смог прочитать запрос GET, но я застрял в использовании SO_KEEPALIVE.
Я проверил эту ссылку [email protected], но я не смог найти ни одного примера, показывающего, как его использовать.
Как только я обнаруживаю клиентский запрос в функции accept()
, я устанавливаю значение параметра SO_KEEPALIVE
1
в клиентском сокете.
Теперь я не знаю, как проверить, закрыт ли клиент?, Как изменить временной интервал между отправленными пробками и т.д.
Я имею в виду, как я получу сигнал о том, что клиент не работает (без чтения или записи на клиенте... Я думал, что получаю сигнал, когда зонды не будут возвращены от клиента), как мне его запрограммировать установка опции SO_KEEPALIVE.
Также, если предположить, что пробники отправляются каждые 3 секунды, а клиент идет между ними, я не узнаю, что клиент выключен, и я могу получить SIGPIPE.
В любом случае важно знать, как использовать SO_KEEPALIVE в коде.
Спасибо за тонну заранее.