在java中,我使用什么名称连接到服务器套接字

在java中,我使用什么名称连接到服务器套接字,java,sockets,networking,serversocket,Java,Sockets,Networking,Serversocket,我正在用java编写一个类似telnet的程序,使用服务器套接字和套接字类。这是客户端程序的当前代码。用户输入服务器名称和要连接的端口 static Socket getSocket() { while(true) { System.out.println("What server do you want to connect to on which port?"); String info = sc.nextLine(); Str

我正在用java编写一个类似telnet的程序,使用服务器套接字和套接字类。这是客户端程序的当前代码。用户输入服务器名称和要连接的端口

static Socket getSocket()
{
    while(true)
    {
        System.out.println("What server do you want to connect to on which port?");
        String info = sc.nextLine();
        String host = info.split(" ")[0];
        int port = Integer.parseInt(info.split(" ")[1]);

        try 
        {
            InetAddress ip = InetAddress.getByName(host);
            return new Socket(ip, port);
        } 
        catch (UnknownHostException e) 
        {
            System.err.println("The host is unknown.");
        }
        catch (IOException e) 
        {
            System.err.println("Network error.");
        }
    }
}

我尝试在localhost上连接,结果成功了。然后我尝试用ip地址作为网络名在远程计算机上与我的朋友连接,但没有成功,出现了异常。我用什么名字连接到远程服务器。

你需要给你的朋友。

你有什么例外?我没有例外,那是在他的远程计算机上,我正在我的计算机上运行服务器,现在无法联系他。可能您必须在WAN路由器中定义转发规则。您是否在家庭路由器中配置了NAT?告诉它对端口X的请求必须重定向到您的电脑?此外,请检查与ISP的合同条款。