【发布时间】:2011-04-07 21:46:49
【问题描述】:
我正在使用 UdpClient 类发送数据包。
似乎每个数据包都有大小限制,因为大数据包永远不会到达目的地。我试图降低数据包的大小,以允许数据包到达目的地。我在某处读到“标准”数据包大小限制为 512 字节。
但我仍然需要发送大于 512 字节的对象。
所以我的问题是:.NET 中是否有内置方法可以将字节数组拆分为更小的数据包。显然,我之后也需要重新组装拆分的数据包。 p>
我在Socket类中看到了SendFile方法,我猜应该可以自动拆分大文件。但该方法不允许字节数组输入(仅文件名)。所以它只适用于发送存储在硬盘上的数据,而不适用于内存中的数据。
【问题讨论】:
-
通过 UDP 发送一大块数据似乎有点奇怪,因为使用 UDP 不能保证数据报到达另一端。即使它们都到达了,也不能保证它们是原始顺序。您确定要使用 UDP 吗?
-
这是一个视频游戏。我已经使用 UDP 进行输入和游戏状态传输。但我认为你是对的,也许 TCP 连接更适合发送地图,因为这些确实需要安全传输。
-
“我在某处读到标准数据包大小限制为 512 字节。”你的来源是错误的,以太网的帧大小大约是这个的三倍。