Java Can';t使用不同网络中的两台电脑将插座连接到服务器插座 描述
目标是让服务器在我的计算机上运行,而另一个人在另一个网络中的计算机上运行客户机Java Can';t使用不同网络中的两台电脑将插座连接到服务器插座 描述,java,sockets,serversocket,Java,Sockets,Serversocket,目标是让服务器在我的计算机上运行,而另一个人在另一个网络中的计算机上运行客户机 这应该使用java.netpackgage中的Socket和ServerSocket类来完成 预期输出是服务器和客户端之间的连接 实际输出没有连接 源代码: 注意:提供了连接所需的最低代码量,去掉了不必要的打印/日志语句和其他代码,以使UI/应用程序按预期运行 Server.java: class Server { ServerSocket server; Socket connection;
这应该使用
java.net
packgage中的Socket
和ServerSocket
类来完成
预期输出是服务器和客户端之间的连接
实际输出没有连接 源代码: 注意:提供了连接所需的最低代码量,去掉了不必要的打印/日志语句和其他代码,以使UI/应用程序按预期运行 Server.java:
class Server {
ServerSocket server;
Socket connection;
final int PORT = 0xface // random port
public static void main(String[] args) {
Server application = new Server(); // constructor is just for UI
application.runServer();
}
private runServer() {
server = new ServerSocket(PORT, 5);
connection = server.accept();
}
}
Client.java
class Client {
String charServerAddress;
final int PORT = 0xface // random port, same as Server port
public static void main(String[] args) {
Client application = new Client(args[0]); // where args[0] is 127.0.0.1
application.runClient();
}
public Client(String host) {chatServerAddress = host;}
private runClient() {
client = new Socket(InetAddress.getByName(chatServerAddress), PORT);
}
}
结果
服务器正常运行,但客户端无法连接
在解决问题之前
127.0.0.1
作为Client=newsocket(InetAddress.getByName(chatServerAddress),PORT)
中的参数。
- 一切按预期进行;客户端可以连接到服务器
ipconfig
,然后使用IPv4地址来获取服务器的IP地址。
- 一切按预期进行;客户端可以连接到服务器
ipconfig
,然后使用IPv4地址
获得了服务器的IP地址。
- 问题:没有错误消息,但是客户端从未连接到服务器
端口
编号ping
从一台机器ping另一台机器以上所有操作都会导致相同的错误:
连接超时
是否有防火墙设置?两者都位于同一网络中吗?啊,你提到网络是不同的,那么目标节点的地址是公共的吗?@mangusta在查看所有防火墙规则时,Java确实有一些访问被阻止。然而,我们的第一个解决方案是在这两台机器上完全禁用它,这不起作用。是的,服务器和客户端在不同的网络上显示网络连接了吗?@NomadMaker我想没有,我是通过我的ISP通过路由器连接到互联网的,而另一个人在几英里之外的家中,通过路由器通过可能不同的ISP连接到互联网。你家的计算机有外部ip名称吗?否则,您如何找到要连接到它的ip号码?