поэтому я пытался изучить использование опции SO_KEEPALIVE в программировании сокетов на языке C в среде Linux.
Я создал серверный сокет и использовал свой браузер для подключения к нему.Это было успешно, и я смог прочитать запрос GET, но я застрял на использовании SO_KEEPALIVE.
Я проверил эту ссылку keepalive_description@tldg.org , но не смог найти ни одногопример, который показывает, как его использовать.
Как только я определяю запрос клиента по функции accept()
, я устанавливаю значение опции SO_KEEPALIVE
1
на сокете клиента.Теперь я не знаю, как проверить, не работает ли клиент ?, Как изменить временной интервал между отправленными датчиками и т. Д.
Я имею в виду, как я получу сигнал о том, что клиент не работает (без чтения или записи вклиент ... Я думал, что получу некоторый сигнал, когда зонды не будут возвращены от клиента), как мне запрограммировать его после установки опции SO_KEEPALIVE.
Кроме того, если предположить, что зонды отправляются каждые 3 секунды, а клиент перестал работать, я не узнаю, что клиент не работает, и я могу получить SIGPIPE.
В любом случае, я хочу знатькак использовать SO_KEEPALIVE в коде.
За тонну заранее !!!