在我的代码中,我正在准备一些使用QDataStream
通过网络发送的数据。在准备工作的中间,我想知道在那一点准备了多少字节。我怎么能这样做?
示例:
int myFunc(QDataStream &ds){
ds << "hello"
ds << 123;
ds << 456.7f;
//...
//How can I do this:
return ds.numberOfBytesPipedIntoThisQDataStreamAtThisTime();
}
答案 0 :(得分:1)
这可行(虽然它看起来不是很优雅)。
int myFunc(QDataStream& ds){
QBuffer buf;
buf.open(QBuffer::WriteOnly);
QDataStream tmpStream(&buf);
tmpStream << "hello";
tmpStream << 123;
tmpStream << 456.7f;
int written = buf.size();
if(ds.device()->write(buf.data()) != buf.data().size()) {
// handle error
}
return written;
}
答案 1 :(得分:1)
通常知道字节数的方法:
QByteArray buf;
QDataStream stream( &buf, QIODevice::ReadWrite );
stream << someData;
int count = buf.size();