Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用非本地serversocket连接客户端_Java_Sockets_Server_Client_Serversocket - Fatal编程技术网

Java 使用非本地serversocket连接客户端

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

我用套接字做服务器和客户端,当我写127.0.0.1或“localhost”时,我可以连接它们。然而,如果我写我的公共ip,客户端将无法连接到服务器。我怎么能这么做

服务器程序:

    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