对于 Java 套接字,连接到不同网络上的另一个设备的正确地址是什么



我想使用java套接字连接不同网络上的两个Android设备。一台设备将充当服务器,另一台设备将充当客户端。服务器必须发布哪个地址才能使客户端可以连接到它?

java.net具有带有方法getLocalHost()InetAddress类,该方法为实例提供本地主机信息(主机名,本地主机地址)。如果我在我的机器上运行它,我得到的地址是 192.168.1.101。这是服务器设备必须发布的地址,以便客户端设备连接到它吗?我假设没有,因为它是本地地址。那么,我在哪里可以获得每个设备的正确地址?

您可以使用 NetworkInterface 枚举所有网络接口。您可能还需要处理连接更改,例如从 3G 切换到 Wifi 等。通常,您的设备不保证具有全局IP地址,因此除非您仅在自己的网络上运行它并且具有有效的IP或设置了必要的NAT/端口转发等,否则您可能无法连接到它。

相关内容

最新更新