Boost asio, таймер внутри async_receive_from не срабатываетC++

Программы на C++. Форум разработчиков
Anonymous
Boost asio, таймер внутри async_receive_from не срабатывает

Сообщение Anonymous »

Я пытаюсь написать небольшой UDP-прокси, используя Boost asio. Внутри него мне нужно прочитать сокет, и если этот сокет получит дейтаграмму, через определенное время должен быть запущен обратный вызов, пересылающий дейтаграмму. Он также должен быть немедленно готов к получению новой датаграммы.
Моя проблема в том, что мой код работает, когда он не находится внутри класса, но как только я пытаюсь создать из него класс , код перестает работать. Я совершенно уверен, что упускаю что-то важное, поскольку я новичок в асинхронном повышении.
Код, который работает, выглядит так, и я получаю выходные данные, которые таймер срабатывает, как и ожидалось.

Код: Выделить всё

#include 
#include 

void receive(udp::socket &socket, io_context &ioContext) {
udp::endpoint receive_endpoint;
std::array buf;
socket.async_receive_from(buffer(buf, buf.size()), receive_endpoint,
[&](const boost::system::error_code& error, std::size_t bytesReceived) {
if (!error && bytesReceived > 0) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78703965/boost-asio-timer-inside-async-receive-from-wont-trigger[/url]

Вернуться в «C++»