【发布时间】:2011-08-06 11:46:44
【问题描述】:
我正在使用 boost::asio::streambuf 将 ostream 写入我的 boost 套接字。
Name name;
name.set_name("platzhirsch");
boost::asio::streambuf b;
std::ostream os(&b);
ZeroCopyOutputStream *raw_output = new OstreamOutputStream(&os);
CodedOutputStream *coded_output = new CodedOutputStream(raw_output);
coded_output->WriteVarint32(name.ByteSize());
name.SerializeToCodedStream(coded_output);
socket.send(b.data());
但是,send 返回的 size_t 为 0。我怀疑根本没有发送任何数据。也因为客户端套接字抛出了可怕的异常。我在问,我的代码是否有什么奇怪的地方。
也就是说,我可以测试streambuf是否为空或者写入的数据是否真的存在。
【问题讨论】: