0

我正在使用 NSD(Network service disovery) 在 Android 中创建一个聊天应用程序。
我的问题是如何使用以前的客户端 IP 和端口重新连接客户端。
示例:客户端第一次连接到服务器时的 IP 和端口
端口:52354
IP:110.100.92.187
假设如果以某种方式丢失连接,那么我可以重新连接到具有相同 IP 和端口的服务器,即端口:52354
IP:110.100.92.187
或任何其他使代码可靠以使其不会断开连接的方法?请记住,我将 NSD 用于本地网络(本地 wifi 网络和热点)而不是用于互联网。
对此问题的任何其他更好的解决方案都是最受欢迎的。

4

1 回答 1

0

如何使用以前的客户端 ip 和端口重新连接客户端

通常你不能,因为 TCP TIME_WAIT 状态。这意味着您不能在两分钟内或本地配置的最大分段生命周期 (MSL) 的两倍内重复使用相同的本地端口。如果您可以等待那么长时间,您可以bind()在连接之前将套接字连接到该端口。

实际上,您不应依赖 IP:port 作为客户端标识符。

于 2017-03-10T10:02:30.410 回答