我正在尝试使用java套接字在两个软件之间创建连接。 特别是: - 第一个是可以拥有n个客户端的服务器 - 第二个是客户
当客户端连接我发送客户端的IP时。 当事情发生时,服务器选择正确的IP并打开连接以发送一些数据。
如果我使用InetAddress.getLocalHost()。getHostAddress()我将本地IP发送给服务器,因此只有当程序在同一网络中时它才会起作用。 如果我使用外部服务,如:
URL url = new URL("http://checkip.amazonaws.com");
BufferedReader input = new BufferedReader(new InputStreamReader(url.openStream()));
String IP = input.readLine();
如果我没有在路由器上设置端口转发,它将无法工作。
委员会要求我从用户的角度做最简单的事情,所以我不能要求每个有程序客户端的用户在路由器上设置端口转发等。
是否有任何解决方案可以建立这种类型的通信?
提前致谢