1
我正在尝试优化具有混合模式协议(元信息,握手,确认等的线协议以及二进制数据)的应用层协议。在客户端等待ACK的状态,我做boost asio async_read_until:如何从自定义MatchCondition引发错误?
async_read_until(socket, buffer, untill_crlf_maxbytes_1024_match_condition, handler);
凡untill_crlf_maxbytes_1024_match_condition
实现acxcording到async_read_until记录here。
这里的想法是读取直到CR + LF,但等待只读取1024个字节,这样如果有什么特别的事情发生,如果套接字得到一些垃圾,它就不会继续读取。
我的问题是,在untill_crlf_maxbytes_1024_match_condition
这种情况下引发错误是个好主意吗?我如何在这种情况下提出错误?如果不是最好的选择?
感谢AndyT,但据我所知,从链接的文档,bool返回值只建议async_read是否可以停止或不。它并没有告诉处理程序有错误。由于错误,我的意思是在目前为止读取的1024字节中未找到CR + LF。 – 2011-01-31 16:14:55