gpt4 book ai didi

c++ - boost asio async_read_until : how to raise error from a custom MatchCondition?

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:51 24 4
gpt4 key购买 nike

我正在尝试优化具有混合模式协议(protocol)(用于元信息、握手、确认等的线路协议(protocol)和用于数据的二进制)的应用层协议(protocol)。在客户端等待ACK的状态下,我做

async_read_until(socket, buffer, untill_crlf_maxbytes_1024_match_condition, handler);

untill_crlf_maxbytes_1024_match_condition 是根据 async_read_until 记录的 here 实现的.

这里的想法是读取直到 CR+LF,但只等待读取 1024 个字节,这样如果发生任何异常情况并且套接字出现垃圾,它就不会继续读取。

我的问题是,在这种情况下从 untill_crlf_maxbytes_1024_match_condition 引发错误是个好主意吗?在这种情况下如何引发错误?如果不是,最好的选择是什么?

最佳答案

引发错误,您的意思是抛出异常吗?如果是这样,这是一个坏主意,因为 boost asio 的大多数功能都有两个版本:抛出异常和返回错误代码。错误代码对于 boost asio 的异步特性非常有用。

对于所有情况,包括错误,您都可以从匹配条件 返回true。只需检查您的 handler

中的错误

关于c++ - boost asio async_read_until : how to raise error from a custom MatchCondition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com