如果在socket :: asio中读取套接字上有任何数据,该如何获取?

时间:2013-04-16 11:58:37

标签: c++ sockets boost boost-asio

是否有任何bool - has data / has not或替代?不需要实际读取 - 仅作为同步方法,如果有可读取的数据,则可以提供信息。那么boost::asio::tcp::ip::socket中的套接字读取方法是否有任何此类数据可供使用?

2 个答案:

答案 0 :(得分:4)

bytes_readable功能。使用它,您可以检查是否有可供读取的数据而不会阻塞。

答案 1 :(得分:0)

另一种可能更简单的方法是boost::asio::ip::tcp::socket::available()非阻塞函数:

asio::ip::tcp::socket *s;
. . .
size_t availBytes = s->available();
if (availBytes > 0)
{
. . .
}