将字符串拆分成块

乌拉尔

因为我在核心或电池中看不到任何东西,所以我正在寻找一种有效的方法来将字节(或字符串,或任何方便的东西)分成大约 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章