WAN上的TCP和UDP套接字服务器

我正在尝试创建一个兼容TCP和UDP的服务器和客户端。 服务器在LAN设置中运行良好,但在WAN上传输时不会收到UDP消息。 我相信这是因为用于发送数据的UDP套接字不会在NAT表中保留足够长的时间来返回任何信息。 有没有办法让UDP端口在路由器中保持打开状态(没有端口转发)或者使用与已连接的TCP连接相同的UDP端口? 提前致谢。

如果您没有获得任何流量,它可能只是被防火墙阻止。 在这种情况下,它不是关于转发,而是关于打开端口。

一旦通过NAT打孔,大多数(如果不是全部)NAT /防火墙设备将允许双向UDP流量。 也就是说,如果我的笔记本电脑位于NAT /防火墙后面,将UDP数据包发送到Internet,我的NAT /防火墙将允许将UDP流量返回到原始端口号。 我使用UDP工作很多,我的经验是这是规则,很少有例外。

请记住,虽然不保证传送UDP数据包。

您的客户端是否支持NAT? 客户端发送的任何数据包都会到达服务器吗? 服务器中的问题是客户端方向吗?

如果对UDP和TCP使用相同的端口号,则不会改变这种情况。 您不能搭载TCP连接,因为它是一种不同的协议。

单播UDP的网络地址转换(NAT)行为要求

http://en.wikipedia.org/wiki/UDP_hole_punching