Java API中的套接字可以用于公共IP地址吗?

Java API中的套接字可以用于公共IP地址吗?,java,sockets,Java,Sockets,我对套接字做了一些广泛的研究,并让它们在两个设备之间的“localhost”下工作。然而,当我想要使用一个在“192.1.168”之外的IP地址时,我只会遇到超时问题,比如没有抛出异常,而不是以编程方式没有发生任何事情,我只是被困在 socket = ServerSocket.accept(unique IP address, port); 这让我想知道Java API中的套接字是否仅用于本地连接,为什么这是有原因的?Java套接字与本机套接字一样,可以使用分配给计算机上接口的任何地址。(除了

我对套接字做了一些广泛的研究,并让它们在两个设备之间的“localhost”下工作。然而,当我想要使用一个在“192.1.168”之外的IP地址时,我只会遇到超时问题,比如没有抛出异常,而不是以编程方式没有发生任何事情,我只是被困在

socket = ServerSocket.accept(unique IP address, port);

这让我想知道Java API中的套接字是否仅用于本地连接,为什么这是有原因的?

Java套接字与本机套接字一样,可以使用分配给计算机上接口的任何地址。(除了服务器套接字的0.0.0或::0是匹配所有分配地址的特殊值)如果您的计算机在RFC1918空间(192.168.0.0/16、172.16.0.0/12、10.0.0.0/8)中有一个地址,则该地址是只能在LAN上路由的专用地址;要连接到公共网络,您必须通过NAT盒(例如典型的ISP“调制解调器”或“路由器”),该NAT盒映射到指定的公共地址,并且可能允许也可能不允许传入连接。