从服务器 A(可通过静态 IP 全局访问)开始,我将 UDP 套接字绑定到 0.0.0.0:25000。
然后,在客户端 A 位于 (住宅) NAT 后面的情况下,我将 UDP 套接字绑定到 0.0.0.0:25000。然后,客户端 A 向服务器 A 发送一个数据包。
服务器 A 接收数据包。服务器 A 记录数据包从哪个远程套接字 K 进行 NAT。服务器 A 向 K 发送一个数据包,目的是让 NAT 将数据包转发给客户端 A。
但是,客户端 A 没有收到数据包。在 NAT 上,当我为 UDP 启用端口 25000 上的端口触发时,它就可以正常工作了。但是,在制作 p2p 应用程序时,我更希望避免要求客户端进入路由器设置来使程序正常工作。我如何才能突破防火墙,使通信成为双向的?