因为我在核心或电池中看不到任何东西,所以我正在寻找一种有效的方法来将字节(或字符串,或任何方便的东西)分成大约 65k 的块(我使用的是短的作为我的长度标头,用于通过 tcp 发送)。尝试自己编写函数,但我遇到了问题,因此将不胜感激,或者指向现有函数的指针也可以。谢谢 !
这是一个将字节值拆分为大小为 65534 的字节列表的函数(当然最后一个除外)。
let split_bytes b =
let rec isplit sofar ib =
let iblen = Bytes.length ib in
if iblen > 65534 then
let chunk = Bytes.sub ib 0 65534 in
let rest = Bytes.sub ib 65534 (iblen - 65534) in
isplit (chunk :: sofar) rest
else
ib :: sofar
in
List.rev (isplit [] b)
(值得考虑在您的代码中传递整个字节值以及告诉到目前为止已写入多少的计数。这将避免制作较小块所需的复制。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句