Как переподключить клиента с предыдущим портом клиента и IP с сервером
Я создаю приложение для чата в Android, используя NSD(Сетевой сервис disovery) .
У меня вопрос, как переподключить клиента с предыдущими IP-адресом и портом клиента.
Пример: IP-адрес и порт клиента при первом подключении к серверу
Порт:52354
IP:110.100.92.187
Предположим, что если соединение потеряно, я могу подключиться к серверу с тем же IP-адресом и ПОРТОМ, т.е. с портом:52354.
IP:110.100.92.187
или любой другой способ сделать код надежным, чтобы он не потерял связь?помните, что я использую NSD для локальной сети (локальная сеть Wi-Fi и точка доступа), а не для Интернета.
Любое другое лучшее решение этой проблемы приветствуется.
1 ответ
как переподключить клиент с предыдущим ip и портом клиента
Как правило, вы не можете из-за состояния TCP TIME_WAIT. Это означает, что вы не можете повторно использовать один и тот же локальный порт в течение двух минут или того, что в два раза больше, чем локально настроенное максимальное время жизни сегмента (MSL). Если вы можете ждать так долго, вы можете bind()
сокет к этому порту до его подключения.
На практике вы не должны полагаться на IP: порт в качестве идентификатора клиента.