Принимает ли ошибка возврата функции (-1), если TCP-сервер выходит из сети - PullRequest
1 голос
/ 31 января 2012

Возвращает ли функция accept ошибку (-1), если подключенный интерфейс Ethernet выходит из сети? Если нет, то как приложение (сервер TCP) узнает, что его интерфейс больше не активен ??

Я использую один поток для принятия соединения и не использую никакого оператора "select" для этого. Прямой вызов функции accept (), но почему-то это не ошибка перенастройки, если я удаляю IP-адрес из интерфейса Ethernet.

с использованием C и рабочей среды Linux.

1 Ответ

0 голосов
/ 22 февраля 2012

Обычно вы не привязываете сокет вашего сервера к определенному IP-адресу (вы используете INADDR_ANY). Таким образом, даже если вы удалите свой IP-адрес Ethernet, вы все равно можете связаться с вашим сервером через интерфейс обратной связи. Или какой-то другой интерфейс с IP-адресом.

Если вы хотите убедиться, что ваш сервер доступен из сети, проверка состояния интерфейса не даст вам много. Это всего лишь один прыжок на длинном пути через сеть. Вам понадобится клиент для тестирования в другом месте, чтобы проверить достижимость вашего сервера.

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