使用本地PC作为服务器

时间:2013-08-15 13:17:48

标签: java connection ip client socketserver

我刚用java中的服务器和客户端做了一个小聊天程序。客户端需要使用服务器的ip连接到服务器。我使用localhost(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());
}

2 个答案:

答案 0 :(得分:1)

在应用程序运行之前,您需要查看大量内容。

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

首先,看看你是否可以ping对方的IP地址并从中获取它。

答案 1 :(得分:1)

我建议您先尝试禁用防火墙。如果您使用的是Windows,请按以下说明关闭Windows防火墙:Turn Windows Firewall on or off

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

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

您还需要注意,某些ISP会阻止某些端口。我建议在端口80(HTTP)等公共端口上进行测试,因为ISP不太可能阻止这种情况(请注意,您需要禁用Skype或任何本地Web服务器来测试它)