我是套接字编程的新手,最近为它挑选了Python。我有几个问题,我似乎无法找到明确的答案。Python:通过UDP发送大对象
我正在研究通过UDP发送数据,并写了一个简单的python脚本来做到这一点。可以很好地发送小对象(准确地说是小腌制对象),但我应该如何处理太大而不适合一个UDP数据包的对象?
我想过先以字节为单位调整对象大小。如果对象足够小以适应UDP数据包,则不会执行任何操作,但如果对象太大,对象将被均匀地分割(如果可能的话)为许多较小的块,以便它可以适合多个UDP数据包并发送到客户端。一旦客户端收到组块,客户端就会将多个UDP数据包重组为原始状态。
当试图实现上述提示时,我立即打开了我的第一堵砖墙。
从我的研究中,似乎没有任何“有效”的方法来获取对象的字节大小。这意味着我无法确定一个对象是否太大而不适合UDP数据包。
如果我坚持将大对象发送到客户端会发生什么?它会自动分片并在客户端重新组合,还是客户端会丢弃数据包?
通过UDP处理大型对象的正确方法是什么?请记住,大对象可能是1GB大小的文件或25MB大小的字节对象。
在此先感谢。
旁注:
我也明白,UDP数据包可能并不总是为了和 它因此,我已经实现了对策是 到标签的序列号发送的UDP数据包给客户。
我明白,不能保证客户端将收到所有的UDP数据包。我现在不关心数据包丢失。
我明白,TCP是我正在尝试做的事情的合适人选,但我的重点是理解UDP以及如何处理现在无法确认客户端数据包的情况。
我明白泡菜的用法是不安全的。稍后会考虑它。