我最近开始使用Java使用套接字,并且将服务器套接字与静态方法InetAddress.getLocalHost()
返回的IP地址绑定在一起
这样,我的客户端在大多数情况下就可以连接到服务器。
但是,当我的服务器计算机具有复杂的网络时,它不起作用。静态方法InetAddress.getLocalHost()
返回了客户端计算机无法访问的地址
我想知道,如何获得通过Java连接到同一网络的其他设备可访问的ip地址?
答案 0 :(得分:0)
InetAddress.getLocalHost()是映射到主机名的地址。这就是它的全部意思。根据主机和网络设置以及您的意图,从中获得的回报可能是也可能不是绑定套接字所想要的。
一个套接字绑定到一个或多个网络接口,并将侦听这些接口。您可以通过调用获取所有接口的列表:
NetworkInterface.getNetworkInterfaces()
我相信您也可以绑定到地址“ 0.0.0.0”,即绑定到所有网络接口。我过去曾经使用过,但是我不知道基本套接字API是否支持它。