У меня есть фрагмент кода, который реализует команду ping как часть большего кода.
Вот сценарий:
- Запуск ping с опцией "-c" или "-t".
- Впоследствии завершается с помощью Ctrl + C
- Примерно через час я наблюдаю сбой проверки связи.
Вот вызов "socket": sock = socket (IP_AF_INET, IP_SOCK_RAW, IP_IPPROTO_ICMP);
Перед вызовом recvfrom издля сокета установлено значение времени ожидания 1 сек.Когда эхо-запрос завершается неудачно, я вижу, что для errno установлено значение EAGAIN.
Я пробовал некоторые тесты и считаю, что это вызвано тем, что сокеты не закрываются при нажатии клавиш Ctrl + C.
Мой вопрос: с какой проблемой я могу столкнуться, если не закрою сокет, как в случае вышеупомянутого сценария?