c – 提升asio&ssl和错误代码
发布时间:2020-12-16 07:28:32 所属栏目:百科 来源:网络整理
导读:考虑这段代码: const std::size_t rawBufferSize = 1024;char rawBuffer[rawBufferSize] = { 0 };boost::asio::ssl::stream boost::asio::ip::tcp::socket * sslStream;... // initializing stuffboost::system::error_code ec;auto buffer = boost::asio::
考虑这段代码:
const std::size_t rawBufferSize = 1024; char rawBuffer[rawBufferSize] = { 0 }; boost::asio::ssl::stream< boost::asio::ip::tcp::socket >* sslStream; ... // initializing stuff boost::system::error_code ec; auto buffer = boost::asio::buffer(rawBuffer,rawBufferSize); for(; ; ) { int readBytes = sslStream->read_some(buffer,ec); // I know that read_some return std::size_t (unsigned int)... // here,readBytes equals -1 if (ec) break; ... (1) } “readBytes”如何等于-1并且达到“(1)”行怎么可能. 我有什么不对的任何线索? 解决方法
在您的情况下,您的error_code变量不是指针,因此以下if语句
if (ec) break; 如果error_code确实存在,则不会正确检查. 您需要这样做以检查error_code是否存在: if (ec.value() != 0) break; 现在,当发生错误时,它将正确中断. 在枚举内,error_code的值可以是these错误条件中的任何一个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Oracle SQL中执行MERGE时,如何更新在SOURCE中不匹配的行?
- 正则表达式获取网页文本内容
- oracle – 使用EXECUTE IMMEDIATE和多个相同的绑定参数
- 使用Linq和C#创建列表中项目的所有可能组合
- ORA-27101,ORA-01033 另类错误原因
- ruby-on-rails – Nil不是Rspec的象征
- jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
- ruby-on-rails – Rails accepted_nested_attributes_for错
- ruby-on-rails – 在RoR中的文本字段中设置最大长度
- char16_t打印