如何区分用于构建套接字连接的设备

时间:2012-06-30 10:32:00

标签: java http sockets tcp ip

我目前正在使用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);

1 个答案:

答案 0 :(得分:0)

您需要在两个网络中设置具有IP的路由器,并向所有主机添加路由,告知它们远程网络和路由器(网关)的IP地址。

您可以通过启用数据包转发来设置Linux计算机以轻松完成此操作。只需将net.ipv4.ip_forward = 1添加到/etc/sysctl.conf并运行sudo sysctl -p

即可

作为套接字程序员,路由通常不需要你关心,它就是为你完成的。