使用Public IP的Java TCP客户端 - 服务器连接

时间:2017-10-13 09:25:18

标签: java tcp ping

服务器看起来像这样(简化)

ServerSocket serverSocket = new ServerSocket(port);
Socket clientSocket = serverSocket.accept();
PrintWrite out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println("42");

客户端看起来像这样(简化)

Socket clientSocket = new Socket("My public IP",port);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data;
while(true){
    if((data = in.readLine()) != null){
        System.out.println(data);
        break;
    }
}

其他设置/操​​作:

  • 在servermachine上打开防火墙,查看相关端口上的传入流量。
  • 将路由器中的端口转发到servermachine的私有IP(192.168.x.x)。
  • 通过在www.whatismyip.com
  • 上搜索公共IP到服务器

这个问题成了答案,现在描述了通过网络空间发送生命,宇宙和一切的终极问题答案的设置。

1 个答案:

答案 0 :(得分:0)

如果您的服务器位于NAT之后,则必须在路由器中设置端口转发。打开一个港口是不够的。 服务器的本地地址是什么?您的服务器在哪个端口上运行?某些端口可能被ISP阻止(例如,端口25通常被阻止以防止垃圾邮件,某些ISP会阻止常见的P2P端口。)