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

时间:2011-08-11 04:56:28

标签: c# networking tcp udp wan

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

Network Address Translation (NAT) Behavioral Requirements for Unicast UDP

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

相关问题