C++ C++;:BOOST-ASIO async\u read\u有些不返回数据包字节数?
我尝试使用以下代码读取套接字(服务器端)中的可用字节数,变量C++ C++;:BOOST-ASIO async\u read\u有些不返回数据包字节数?,c++,size,byte,boost-asio,packet,C++,Size,Byte,Boost Asio,Packet,我尝试使用以下代码读取套接字(服务器端)中的可用字节数,变量packet\u bytes没有任何作用。我希望数据包使用的字节数被读入packet\u bytes,但这似乎不起作用 std::size_t packet_bytes = 0; socket_.async_read_some(boost::asio::buffer(data_, max_length), boost::bind(&session::handle_read, this,
packet\u bytes
没有任何作用。我希望数据包使用的字节数被读入packet\u bytes
,但这似乎不起作用
std::size_t packet_bytes = 0;
socket_.async_read_some(boost::asio::buffer(data_, max_length),
boost::bind(&session::handle_read, this,
boost::asio::placeholders::error,
packet_bytes));
我还尝试了
std::size\u t packet\u bytes=socket\uu.available()代码>并且也没有返回任何内容。这是最新的 在bind
调用中的packet\u bytes
参数也应该是占位符:
socket_.async_read_some(boost::asio::buffer(data_, max_length),
boost::bind(&session::handle_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
然后在处理函数中,该参数将是读取的字节数
例如,请参见。中的示例,bind
调用中的packet\u bytes
参数也应该是占位符:
socket_.async_read_some(boost::asio::buffer(data_, max_length),
boost::bind(&session::handle_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
然后在处理函数中,该参数将是读取的字节数
例如,请参见。中的示例。该参数不是用于获取套接字中的字节吗?但是如何创建处理函数?@lost_with_coding好的,在重新阅读您的问题后,您似乎想知道可以读取的字节数,即接收缓冲区中的字节数,而不是你刚刚收到的字节数。是否正确?确切地说,我如何获取服务器接收到的数据包的字节数?@lost\u with\u coding是的,它会自动调用,但可能不是在调用async\u read\u some
时,而是在接收到数据时(可能是任何时候)。该参数不是用于获取套接字中的字节吗?但是如何创建处理函数?@lost_with_coding好的,在重新阅读您的问题后,您似乎想知道可以读取的字节数,即接收缓冲区中的字节数,而不是刚接收的字节数。是否正确?确切地说,我如何获取服务器接收到的数据包的字节数?@lost\u with\u coding是的,它会自动调用,但可能不是在调用async\u read\u some
时,而是在接收到数据时(可能是任何时候)。