Java-异步套接字通道无法连接到远程异步服务器套接字通道



我创建并调试了一个使用AsynchronousSocketChannelAsynchronousServerSocketChannel的简单网络应用程序,当通过localhost访问时,它们可以正常工作,但即使我将服务器应用程序移动到另一个设备,它也拒绝连接。我第一次注意到这一点是在我尝试端口转发应用程序时,但当它移动到同一网络上的设备上并通过IPv4连接时,它仍然不起作用。我检查了这两个设备,它们都允许Java通过防火墙,并且没有任何东西阻止我使用的端口号(我还测试了其他各种端口(。如果客户端在同一台机器上,并且您使用该机器的IPv4,则客户端甚至无法连接到服务器。它实际上只适用于localhost。其他人有过这个问题吗?

这就是打开服务器通道的方式:

serverSocket = AsynchronousServerSocketChannel.open();
serverSocket.bind(new InetSocketAddress("127.0.0.1", port));

通过删除InetSocketAddress:的IP部分修复了它

serverSocket = AsynchronousServerSocketChannel.open();
serverSocket.bind(new InetSocketAddress(port));

127.0.0.1替换为机器的IPv4具有相同的效果。如果有人能解释这一点,那就太好了,因为我在网上看到的每个例子都绑定了localhostAsynchronousServerSocketChannel不应该被远程访问吗?

最新更新