使用套接字在nat后面连接ip

时间:2013-03-07 19:39:01

标签: networking network-programming

考虑使用手机A连接到wifi的手机,地址为动态Ip ex:192.168.0.34,并通过port 7567,监听服务器套接字以何种方式使用任何编程语言连接到该套接字如果我有另一部电话B连接公共IP说10.0.0.56并且我有wifi路由器ip说ex 55.56.89.76

1 个答案:

答案 0 :(得分:5)

如果不使用端口转发,则无法直接连接到NAT后面的客户端。但是有一种叫做打孔的技术可以打开一个NAT端口。

来自Wikipedia

  

打孔是一种计算机网络技术,用于在单独的组织中建立双方之间的通信,这些组织都是限制性防火墙。用于在线游戏,P2P和VoIP等应用程序,两个客户端都与不受限制的第三方服务器建立连接,从而为其发现外部和内部地址信息。由于每个客户端都向服务器发起了请求,因此服务器知道为该会话分配的IP地址和端口号,它与另一个会话共享。拥有有效的端口号会导致防火墙接受来自每一方的传入数据包。 ICMP打孔,UDP打孔和TCP打孔分别使用Internet控制消息,用户数据报和传输控制协议。使用TCP恶意打孔,可以将压缩的SYN数据包发送到公共ACK路径。许多软件都是这样做的。

另请参阅与this topic相关的问题。