0

我刚刚用java中的服务器和客户端制作了一个小聊天程序。客户端需要使用服务器的ip连接到服务器。我使用本地主机(127.0.0.1)进行的所有测试,一切都很好,但是当我后来和我的一个朋友测试它时,我不得不注意到,如果我输入我的 IP 地址(我运行服务器,他运行客户端)它不起作用。有没有办法在我的电脑上设置一个私人小服务器来运行我的服务器,或者可能是另一种让它工作的方法?

编辑:

刚刚找到一个名为“Apache”的工具来设置您自己的服务器,这可能会有所帮助吗?

编辑:当我说它不起作用时,我的意思是我得到一个 IOException,因为它失败了:

public void connectToServer() throws IOException{

    showMessage("Attemption to connect...");
    connection = new Socket(InetAddress.getByName(serverIP), 6789);
    showMessage("\nConnected to: " + connection.getInetAddress().getHostName());
}
4

2 回答 2

1

在您的应用程序运行之前,您需要查看很多事情。

  • 两端的防火墙(和防病毒应用程序)需要允许程序通信
  • 您的 ISP 需要允许通过您指定的端口发送消息
  • 您的路由器(和客户端)需要不过滤这些消息。

首先,看看您是否可以 ping 对方的 IP 地址并从那里获取。

于 2013-08-15T13:21:57.383 回答
1

我建议您首先尝试禁用防火墙。如果您使用的是 Windows,以下是关闭 Windows 防火墙的说明:打开或关闭 Windows 防火墙

如果您正在与本地网络之外的人进行测试,您可能需要在托管服务器的人的路由器上设置 NAT。您可以通过在 Web 浏览器中输入路由器的本地 IP 地址来访问路由器。这通常类似于 192.168.1.1 或 192.168.1.254,但这取决于型号和网络设置。

连接后,您应该找到“NAT”或“端口转发”的选项(通常在高级选项下)。我建议您使用路由器型号以及如何设置端口转发进行谷歌搜索。

您还需要注意某些 ISP 会阻止某些端口。我建议在通用端口上进行测试,例如端口 80 (HTTP),因为 ISP 不太可能阻止此操作(请注意,您需要禁用 Skype 或任何本地 Web 服务器来测试此操作)

于 2013-08-15T13:36:40.093 回答