Как я проверяю, подключается ли Сокет в настоящее время в Java? [дубликат]

Этот вопрос уже имеет ответ здесь:

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

socket.isConnected();

Любая ценившая справка, спасибо.

25
задан Supertux 7 September 2009 в 16:08
поделиться

1 ответ

Предполагая, что у вас есть какой-то уровень контроля над протоколом, я большой поклонник отправки сердца, чтобы убедиться, что соединение активен. Доказано, что он является самым пропорциональным методом доказательства и часто даст вам самое быстрое уведомление, когда соединение было сломано.

TCP Keepalives будет работать, но что, если удаленный хост внезапно выключен? TCP может занять много времени на время ожидания. С другой стороны, если у вас есть логика в вашем приложении, которое ожидает от сердца, отвечаю каждые x секундах, в первый раз, когда вы не получаете их, вы знаете, что соединение больше не работает, либо по сети, либо в номере сервера на удаленной стороне Отказ

См. Мне нужно сердцебиению, чтобы держать сообщение TCP открыть? для большего обсуждения.

16
ответ дан 28 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: