Как отключить TCP Keepalive? - PullRequest
       35

Как отключить TCP Keepalive?

2 голосов
/ 10 марта 2011

У меня есть Java-приложение, выполняющее роль сервера, и телефон Android, выступающий в роли клиента.Они общаются через TCP-сокеты.

Я часто сплю клиенту, и когда его буфер заполняется, я хочу, чтобы радио Wi-Fi могло спать.Проблема в том, что клиент не спит.Я заметил, что wireshark говорит, что мой сервер отправляет пакет TCP KeepAlive примерно каждые полсекунды, поэтому Wi-Fi не может спать.Я попробовал следующее на сервере и клиенте.

connectionSocket.setKeepAlive(false);

Но, похоже, это ничего не меняет.Я использую Wireshark для анализа трафика.Вот снимок экрана wireshark ... черные линии показывают, где мой клиент спит, и его буфер приема переполнен.Могу ли я остановить отправку пакетов keepAlive сервером?

Спасибо!

1 Ответ

1 голос
/ 10 марта 2011

TCP-соединения остаются открытыми до тех пор, пока не будут закрыты, здесь есть механизм поддержания активности для обнаружения сбоев соединений.

Проверьте эту ссылку: Есть ли в соединении TCP-сокета "keep alive"?

...