【问题标题】:What name do i use to connect to a server socket in java我用什么名字连接到java中的服务器套接字
【发布时间】:2013-04-01 13:24:45
【问题描述】:

我正在使用服务器套接字和套接字类在 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 路由器中定义一个转发规则。

标签: java sockets networking serversocket


【解决方案1】:

你需要给你的朋友your remote IP address

【讨论】:

  • 您是否在家用路由器中配置了 NAT?告诉它对端口 X 的请求必须重定向到您的 PC?此外,请检查与您的 ISP 的合同条款。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 2021-12-15
  • 2016-03-10
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
  • 2011-03-21
相关资源
最近更新 更多