【发布时间】:2014-12-18 04:01:14
【问题描述】:
我想将数据从 UDP 服务器发送到 UDP 客户端。服务器具有公共 IP,并且正在侦听已知端口号,因此客户端可以使用 UDP 将数据发送到服务器,但客户端位于 NAT 后面,并且客户端未侦听已知端口。服务器无法根据需要向客户端发送数据。 客户端是否可以联系服务器,服务器可以使用客户端网关的端口和公共地址进行回放?
有没有什么好方法可以将数据从 UDP 服务器发送到 NAT 后面的 UDP 客户端?
【问题讨论】:
-
谷歌打孔。涉及从客户端向服务器发送数据包,因此 nat 认为连接已建立
-
NAT 遍历是一个经过充分研究的领域。只是一些初学者:1)en.wikipedia.org/wiki/UDP_hole_punching,2)think-like-a-computer.com/2011/09/16/types-of-nat
标签: c linux sockets networking