如何使用 Socket 将客户端连接到 Java 中的服务器

How can I connect a client to a server in Java using Socket

我正在尝试编写一个客户端-服务器应用程序,将作为客户端的 PC 连接到作为服务器的我的 PC。 当我在客户端输入 127.0.0.1 作为服务器 IP 时,在我的 PC 中,它工作正常,所以这不是编码问题。此外,当我输入我的 IP(从 kali 中的 nslookup 命令获取)并连接到互联网时,客户端正确连接到服务器。

但是当我在其他 PC 上打开我的客户端应用程序并在我的 PC 上打开服务器应用程序时,客户端将抛出“连接超时”异常。

我试过在客户端(Windows 10)关闭防火墙,但在服务器端没有。

这是我的代码:

服务器:

ServerSocket server = new ServerSocket(SERVER_PORT);

Socket client = server.accept();

//Some codes

客户:

Socket server = new Socket(SERVER_IP, SERVER_PORT);

为了更好的回答,我们需要您提供更多信息。但是从这个 post,这是我能做出的最佳答案。您没有解释您的目标是什么,您是想在本地网络内建立连接,还是想通过互联网连接到 'outside world'。

如果您想让两台 PC 在本地网络中通信,那么您必须确保它们在同一网络上,或者更准确地说,它们连接到同一路由器。您必须将您的服务器 IP 地址设置为本地网络上的 IP 地址,这可能类似于 192.168.xxx.xxx

如果你想通过互联网进行通信,我建议先在本地网络中进行测试,如前所述。如果它在本地网络上工作,那么你必须处理防火墙、路由器设置等,以使其在互联网上也能工作。

这个也看看 Use Socket-communication over different networks