Как ведет себя сокет при наличии нестабильности соединения - PullRequest
0 голосов
/ 26 декабря 2018

Представьте себе соединение между клиентом и сервером.Если один из участников потерял связь с сетью на короткое время, сокет все еще будет действителен?В основном меня интересует реализация LWIP, но что-то подсказывает, что ответ одинаков для любого сокета.

Кстати, это крутая идея изменить параметры KEEP_ALIVE на порядок секунд, когда требуется очень быстрое обнаружение отключения, нона короткое время?

Под "потерянным соединением" я подразумеваю физические причины, такие как потеря соединения с сетью Wi-Fi.

1 Ответ

0 голосов
/ 26 декабря 2018

Если один из участников на короткое время потерял связь с сетью, сокет все еще будет действителен?

Это зависит.Предполагая, что вы имеете в виду сокеты TCP: если в течение этого времени не нужно было обмениваться данными, то небольшая потеря соединения не имеет значения вообще.Если вместо этого необходимо было обмениваться данными или активным поддерживался TCP, то соединение могло либо ухудшиться (замедление и повторная попытка отправки данных в случае, если данные приложения еще не были подтверждены), либо закрыться с ошибкой в ​​зависимости от того, как долго произошла потеря физического соединения,

В случае UDP или необработанных сокетов он все равно не заботится о потерянных данных, поэтому ничего важного не произойдет.

...