我目前正在使用TCP / IP连接构建应用程序,应用程序通过从mysql数据库查询IP地址在服务器和客户端之间建立连接。但是,让我们说有
人A和B连接到网络NET_A(220.241.XXX.XXX)
AND
人们C和D连接到网络NET_B(221.221.xxx.xxx)
如果我想要使用某种IP地址连接A和D以及B和C连接到彼此,那么我应该使用哪种IP地址或方法,以便那些人可以成功连接给对方?我已使用以下代码使用本地IPv4地址成功连接网络NET_A中的A和B:
InetAddress thisIp =InetAddress.getLocalHost();
System.out.println("IP:"+thisIp.getHostAddress());
以下是serversocket代码:
ServerSocket ss = new ServerSocket(PORT);
ss.setSoTimeout(10000);
connection = ss.accept();
遵循客户端套接字代码:
connection = new Socket(InetAddress.getByName(SERVER_IP), PORT);
答案 0 :(得分:0)
您需要在两个网络中设置具有IP的路由器,并向所有主机添加路由,告知它们远程网络和路由器(网关)的IP地址。
您可以通过启用数据包转发来设置Linux计算机以轻松完成此操作。只需将net.ipv4.ip_forward = 1
添加到/etc/sysctl.conf
并运行sudo sysctl -p
作为套接字程序员,路由通常不需要你关心,它就是为你完成的。