c – boost :: asio :: placeholders :: bytes_transferred是什
async_read_until()中的boost :: asio :: placeholders :: bytes_transferred是什么意思?在回调函数中,它返回的值小于streambuf.size().在回调之前,streambuf很清楚.总而言之,… bytes_transferred不是通过套接字的实际字节数,而是更少.我是否误解了所有这些,或者是什么?
编辑:我从套接字读取以下协议:
“Y43,” – 是标题. 我的代码用于阅读就像: void handle_write(const boost::system::error_code& error,size_t bytes_transferred) { if (!error) { boost::asio::async_read_until( socket_,inputStreamBuffer_,',boost::bind( &client::handle_read1,this,boost::asio::placeholders::error,boost::asio::placeholders::bytes_transferred ) ); } else { std::cout << "Write failed: " << error << "n"; } } void handle_read1(const boost::system::error_code& error,size_t bytes_transferred) { cout << "bytes_transferred=" << bytes_transferred << endl; if (!error) { cout << "0 size=" << inputStreamBuffer_.size() << endl; istream is(&inputStreamBuffer_); char c[1000]; is.read(c,bytes_transferred); c[bytes_transferred]=0; for (int i=0;i<bytes_transferred;++i) { cout << dec << "c[" << i << "]=" << c[i] << " hex=" << hex << static_cast<int>(c[i]) << "#" << endl; } } else { std::cout << "Read failed: " << error << "n"; } } 对于从另一方发送的流:
有时候,我读到这个:
对于从另一方发送的流:
但其他时候,我读到这个:
套接字用SSL保护,客户端和服务器应用程序是boost_asio / example / ssl / *的略微修改的示例. 在第二个例子中,我松开整个标题:( 解决方法
函数有四个重载,但我们只假设使用了第一个.如果查看
documentation,那么您将看到bytes_transferred是指定的分隔符的字节数.
而且:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |