Добрый день.
Начинаю осваивать boost::asio.
Я асинхронно принимаю udp пакеты через ip::udp::socket::async_receive_from(...). У меня возник вопрос как узнать размер принятой дейтаграммы? В классе ip::udp::socket не нашел метода, возвращающего это значение, то ли я плохо искал, то ли данный параметр в находится в предке, то ли это делается как-то по-другому.
Заранее благодарю за ответы.
Забыл залогиниться.
Хочу скорректировать вопрос. Вроде как понял как получить количество принимаемых байт: перед вызовом функции acync_recv_from нужно вызвать функцию available().
Но возник вопрос: функцию available() нужно вызвать, когда придет дейтаграмма, в QT для этого есть сигнал readyRead, каким образом осуществляется синхронизация с моментом приема пакета в буст?
Здравствуйте, roman_dev, Вы писали:
void handler(
const boost::system::error_code& error, // Result of operation.
std::size_t bytes_transferred // Number of bytes received.
);
Здравствуйте, savitar, Вы писали:
S>Здравствуйте, roman_dev, Вы писали:
S>S>void handler(
S> const boost::system::error_code& error, // Result of operation.
S> std::size_t bytes_transferred // Number of bytes received.
S>);
S>
Спасибо за ответ, как-то я этот параметр сразу не заметил.
Интересно, есть ли асинхронная функция, ожидающая дейтаграммы, но не пишущая данные в буфер, чтобы через available() можно было понять какой буфер нужно выделить, а не выделять с запасом.