为什么我无法从 Java 中的两台 PC 连接我的插座?
Why I can't connect my sockets from two PCs in Java?
到目前为止,我已经通过并行地 运行 不同 java class 在同一台计算机上建立 server/client 关系 es。因为我不想让这个问题过于复杂,所以我将 post 我的简化代码,它工作得很好。
服务器:
public class Server {
public static final int PORT = 9090;
public static void main (String[] args) {
try {
ServerSocket serverSocket = new ServerSocket (PORT);
Socket client = serverSocket.accept ();
System.out.println ("Client connected!");
} catch (IOException ioException) {
ioException.printStackTrace ();
}
}
}
客户:
public class Client {
public static final int PORT = 9090;
public static final String IP_ADDRESS = "127.0.0.1";
public static void main (String[] args) {
try {
Socket socket = new Socket (IP_ADDRESS,PORT);
} catch (IOException ioException) {
ioException.printStackTrace ();
}
}
}
在我 运行 他们之后,我得到了预期的输出 - class Server
中的控制台打印 “客户端已连接!”.
像任何其他好奇的程序员一样,我决定在我的两台笔记本电脑上试用相同的程序。一台笔记本电脑有 客户端代码 ,而第二台有 服务器代码 。当然,我必须将 "127.0.0.1" 或 "localhost" 更改为 ip 地址我的 server laptop 通过键入 google "what is my IP address"
获得。我刚刚将 新 IP 地址 复制到 IP_ADDRESS
变量中,并希望它也能正常工作。不幸的是,它没有发生。我的 客户端笔记本电脑 看起来好像从未连接到 服务器笔记本电脑 ,因为 服务器笔记本电脑 从未打印消息 “客户端已连接!”。我错过了什么?它看起来很容易,但它不起作用。有人可以帮我解决这个问题吗?
P.S。出于隐私原因,我不想分享我的 IP 地址,但当你们google:我的 IP 地址是什么?[时,它是第一个弹出的数字。 =16=]
如果您在本地网络上,则不必使用 public IP。你需要找到你的本地 IP(如果你在 linux,一个简单的“ip a”,你就会有你的 IP 地址,if you are on windows )
如果您不在本地网络上,您可以打开路由器的设置以打开 9090 端口,但出于安全原因,我强烈不鼓励您这样做。
到目前为止,我已经通过并行地 运行 不同 java class 在同一台计算机上建立 server/client 关系 es。因为我不想让这个问题过于复杂,所以我将 post 我的简化代码,它工作得很好。
服务器:
public class Server {
public static final int PORT = 9090;
public static void main (String[] args) {
try {
ServerSocket serverSocket = new ServerSocket (PORT);
Socket client = serverSocket.accept ();
System.out.println ("Client connected!");
} catch (IOException ioException) {
ioException.printStackTrace ();
}
}
}
客户:
public class Client {
public static final int PORT = 9090;
public static final String IP_ADDRESS = "127.0.0.1";
public static void main (String[] args) {
try {
Socket socket = new Socket (IP_ADDRESS,PORT);
} catch (IOException ioException) {
ioException.printStackTrace ();
}
}
}
在我 运行 他们之后,我得到了预期的输出 - class Server
中的控制台打印 “客户端已连接!”.
像任何其他好奇的程序员一样,我决定在我的两台笔记本电脑上试用相同的程序。一台笔记本电脑有 客户端代码 ,而第二台有 服务器代码 。当然,我必须将 "127.0.0.1" 或 "localhost" 更改为 ip 地址我的 server laptop 通过键入 google "what is my IP address"
获得。我刚刚将 新 IP 地址 复制到 IP_ADDRESS
变量中,并希望它也能正常工作。不幸的是,它没有发生。我的 客户端笔记本电脑 看起来好像从未连接到 服务器笔记本电脑 ,因为 服务器笔记本电脑 从未打印消息 “客户端已连接!”。我错过了什么?它看起来很容易,但它不起作用。有人可以帮我解决这个问题吗?
P.S。出于隐私原因,我不想分享我的 IP 地址,但当你们google:我的 IP 地址是什么?[时,它是第一个弹出的数字。 =16=]
如果您在本地网络上,则不必使用 public IP。你需要找到你的本地 IP(如果你在 linux,一个简单的“ip a”,你就会有你的 IP 地址,if you are on windows ) 如果您不在本地网络上,您可以打开路由器的设置以打开 9090 端口,但出于安全原因,我强烈不鼓励您这样做。