我正在使用UdpClient类来发送数据包。C#如何分割UDP数据包?
似乎有一个每个数据包的大小限制,因为大数据包永远不会到达目的地。我试图降低数据包的大小,使数据包能够到达目的地。我在某处读到“标准”数据包大小限制是512字节。
但我仍然需要发送大于512字节的对象。
所以我的问题是:是否有内置的方式在.NET中将字节数组拆分为更小的数据包。显然,我也需要重新组装拆分包。
我看到了Socket类中的SendFile方法,我猜应该可以自动分割大文件。但该方法不允许字节数组输入(仅限文件名)。所以它只适用于发送存储在硬盘驱动器上的数据,而不适用于内存数据。
通过UDP发送大块数据似乎有点奇怪,因为使用UDP数据报不能保证到达另一端。即使他们都到达了,他们也不能保证按照原来的顺序。你确定要使用UDP吗? – 2011-04-07 22:29:45
这是一款电子游戏。我已经使用UDP进行输入和游戏状态传输。但我认为你是对的,也许TCP连接会更适合发送地图,因为这些连接确实需要安全地传输。 – asmo 2011-04-08 15:13:02
“我在某处读到标准数据包大小限制是512字节。”您的来源错误,以太网的帧大小约为三倍。 – 2011-04-10 21:51:33