带有外部和内部ip地址的套接字

时间:2015-05-31 03:37:47

标签: c++ network-programming

我想知道文本信使应用程序喜欢whatsapp 我有一些网络问题

PC中的聊天程序:

服务器(1.2.3.5) 路由器A(1.2.3.4) 路由器B(1.2.3.6)

路由器A下有2台电脑 A(192.168.0.2) B(192.168.0.3)

路由器B下有2台电脑 C(192.168.0.4) d(192.168.0.5)

当D想要连接到A时,它将msg发送到服务器,服务器将msg转发给A,路由器(1.2.3.4)需要设置端口转发规则 例如,聊天程序使用端口999 当服务器发送一个msg到1.2.3.4:999路由器(1.2.3.4)将msg转发到A(192.168.0.2:999)时,可以在PC上设置路由器设置

但是当我们使用手机并连接到wifi时 电话的外部IP被更改并分配内部IP,但显然我们无法在该路由器上制定端口转发规则 文本信使(或whatsapp)如何与网络良好协作?

1 个答案:

答案 0 :(得分:0)

服务器需要与位于不同子网的计算机进行通信。你有两个选择:

  • 让客户端启动与服务器的连接。例如,这就是Skype的工作方式。连接客户端后,服务器就可以向其发送数据。

  • 让客户端使用uPnP在路由器上转发已知端口。但是,这要求服务器事先知道端口和主机。除特定应用程序(如BitTorrent)外,通常不可能这样做。