从套接字递归处理数据

Recursive processing of data from socket?

本文关键字:数据 处理 递归 套接字      更新时间:2023-10-16

在使用boost asio read_some()处理来自服务器的数据时,我遇到了一个问题。

数据

格式为:83,数据长度,数据

问题:

我以块的形式从服务器接收数据包,其中数据包可以具有单个数据或多个数据。此外,在某些情况下,我可以接收 2-3 个数据包中的单个数据。虽然我已经为相同的迭代逻辑编写了迭代逻辑,但我想知道 some1 是否可以为此类问题建议递归逻辑。我对递归不是很有信心,因此将不胜感激。

另外,另一个问题是,如果使用 boost asio read_some(), 1500 字节读取数据,则最大长度是多少?

根据评论,我认为递归在这里不是一个好的选择。我必须坚持我的迭代方法。感谢每个人1的及时回复/建议

事物分成 2 个缓冲区,一个用于原始数据,一个用于完整数据包的队列。
有些东西链接这个:

while(true) {
    receive data from socket
    append data to sendBuffer
    while( sendbuffer contains a complete packet) {
        move packet to packetQueue();
        removePacket from sendbuffer;
    }
}