我在使用boost asio read_some()处理来自服务器的数据时遇到了问题。
数据格式为:83,数据长度,数据
问题:
我正在接收来自服务器的数据包,其中数据包可以包含单个数据或许多数据。 此外,可能存在我可以在2-3个数据包中接收单个数据的情况。 虽然我已经编写了相同的迭代逻辑,但我想知道some1是否可以为这类问题建议递归逻辑。 我对递归并不十分自信,因此非常感谢帮助。
另外,另一个问题是,如果使用boost asio read_some()读取数据的最大长度为1500字节?
答案 0 :(得分:1)
根据评论,我认为递归在这里不是一个好选择。我必须坚持我的迭代方法。 感谢every1提供快速回复/建议
答案 1 :(得分:0)
将事物拆分为2个缓冲区,一个用于原始数据,一个队列用于完整数据包。
一些链接:
while(true) {
receive data from socket
append data to sendBuffer
while( sendbuffer contains a complete packet) {
move packet to packetQueue();
removePacket from sendbuffer;
}
}