Java 使用本地pc作为服务器

Java 使用本地pc作为服务器,java,connection,ip,client,socketserver,Java,Connection,Ip,Client,Socketserver,我刚刚用java编写了一个服务器和客户端的聊天程序。客户端需要使用服务器的ip连接到服务器。我对localhost(127.0.0.1)进行的所有测试都进行得很好,但当我后来与一位朋友一起测试时,我不得不注意到,如果我输入我的ip地址(我运行服务器,他运行客户机),它就不起作用了。 有没有一种方法可以在我的电脑上设置一个专用的小服务器来运行我的服务器,或者另一种方法可以让它工作 编辑: 刚刚找到一个名为“Apache”的工具来设置您自己的服务器,这可能会有帮助吗 编辑:当我说它不工作时,我的意思

我刚刚用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());
}

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

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

首先,看看是否可以ping对方的IP地址,然后从那里获取。我建议您首先尝试禁用防火墙。如果您使用的是windows,以下是关闭windows防火墙的说明:

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

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


您还需要知道,某些ISP将阻止某些端口。我建议在一个公共端口上进行测试,例如端口80(HTTP),因为ISP不太可能阻止这一点(请注意,您需要禁用Skype或任何本地web服务器来测试这一点)

老实说,我认为从这里到那里的整个消息都很好,在我们进行测试时,两端的防火墙都关闭了,而且是防病毒的。我之前在谷歌上搜索过一点,我发现一旦客户端要求通过我的ip连接我的路由器,我的路由器就不知道该怎么办,因为它在服务器上,它只是一个局域网。这就是为什么我要求有一种方法来设置这样一个服务器。哦,还没有想到NAT,非常好的主意,我会试试。没问题,请让我们知道这是否回答了你的问题。当你说它不起作用时,你是什么意思?你有错误吗?如果是,请添加stacktrace。您的朋友是否正确使用您的公共IP地址?您知道127.0.0.1不是您的实际IP,对吗?请确保您使用0.0.0.0而不是127.0.0.1启动服务器。我从一个输入对话框开始,请求IP连接:)