Java 使用非本地serversocket连接客户端
我用套接字做服务器和客户端,当我写127.0.0.1或“localhost”时,我可以连接它们。然而,如果我写我的公共ip,客户端将无法连接到服务器。我怎么能这么做 服务器程序:Java 使用非本地serversocket连接客户端,java,sockets,server,client,serversocket,Java,Sockets,Server,Client,Serversocket,我用套接字做服务器和客户端,当我写127.0.0.1或“localhost”时,我可以连接它们。然而,如果我写我的公共ip,客户端将无法连接到服务器。我怎么能这么做 服务器程序: public static void main(String[]args) throws IOException { int puerto = 6000; ServerSocket servidor = new ServerSocket(puerto); Syst
public static void main(String[]args) throws IOException {
int puerto = 6000;
ServerSocket servidor = new ServerSocket(puerto);
System.out.println("Escuchando en: " + servidor.getLocalPort());
Socket cli1 = servidor.accept();
System.out.println("Un cliente se ha conectado.");
servidor.close();
}
客户一:
public static void main(String[]args) throws UnknownHostException, IOException {
String Host = "aaa.bbb.ccc.ddd";
int puerto = 6000;
Socket cliente = new Socket("Host", puerto);
InetAddress i = cliente.getInetAddress();
System.out.println("Puerto Local: " + cliente.getLocalPort());
System.out.println("Puerto Remoto: " + cliente.getPort());
System.out.println("Host Remoto: " + i.getHostName().toString());
System.out.println("IP Host Remoto" + i.getHostAddress().toString());
cliente.close();
}
如何使用公共ip连接客户端和服务器?这与其说是编程问题,不如说是网络设置问题。您可能有一个路由器,它允许您在多个设备之间共享公共Internet连接。如果是这样,您需要给它一个规则,说明任何到端口X的连接都应该转到机器Y。但是,指示您如何操作超出StackOverflow的范围。它应该说
新套接字(主机,
(无引号)。好的,非常感谢,我会尝试这样做,我对网络不太了解,但这与网络无关。如果您使用“Host”
进行编码,您将连接到“Host”,而不是引用变量Host
是的,我知道它所在的主机,在那里我写了我试图使用的ip,但在我将其粘贴到主机之前我对其进行了更改,以便您可以知道我在那里发送ip