gpt4 book ai didi

c++ - 如何知道 boost::asio::ip::tcp::iostream 上没有可用数据?

转载 作者:太空宇宙 更新时间:2023-11-04 14:07:12 24 4
gpt4 key购买 nike

我正在使用 boost::asio::ip::tcp::iostream 从 TCP 流中读取二进制数据。我这样做:

stream.read(reinterpret_cast<char*>(&packetSize), 4); // first 4 bytes is length
stream.read(buffer, packetSize);

我是否应该只检查 stream.gcount() 以及下一个 stream.gcount() == 0 时,这意味着没有更多数据可供读取(TCP session 是完成)?

最佳答案

你要找的流成员深埋在基类中http://en.cppreference.com/w/cpp/io/basic_ios

使用 good() 和 !eof() 查看您是否获得了数据。您可以在流对象 (exception()) 上设置标志以指示流在发生错误时抛出异常。这使得处理有时更容易。

关于c++ - 如何知道 boost::asio::ip::tcp::iostream 上没有可用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16398172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com