Тема: Boost::asio, async_receive_from, як передати свої дані в handler?
Хай, от мій кід, ліл.
#include <cstdlib>
#include <iostream>
#include <boost\asio.hpp>
using namespace boost::asio;
io_service service;
ip::udp::socket sock(service);
char buff[1024];
void receive_callback(const boost::system::error_code& ec, std::size_t bytes_transferred)
{
std::cout << "Got " << bytes_transferred<< " bytes" <<std::endl;
sock.async_receive(buffer(buff), receive_callback);
}
int main()
{
try{
ip::udp::endpoint endPoint(ip::udp::v4(), 9050);
sock.open(ip::udp::v4());
sock.bind(endPoint);
ip::udp::endpoint senderEP;
sock.async_receive_from(buffer(buff), senderEP, 0, receive_callback);
service.run();
}
catch (std::exception ex)
{
std::cout <<"Error: " << ex.what() << std::endl;
}
system("pause>>void");
return 0;
}
Я так розумію, що в змінну senderEP заносяться дані відправника, ну типу з якого ip та порта прийшли дані.
Але як мені передати ось ці дані в функцію receive_callback?
Вона ж приймає лише код помилки та розмір отриманих даних.
Я ж хочу зробити, аби після отримання даних відбувалась якась штука дрюка, наприклад, щоб sendEP записувався в контейнер, але спочатку перевірялось, чи я такі дані в контейнері, а потім, щоб відправляти отримане повідомлення всім, хто в контейнері.
Ну ви зрозуміли, простий чатик, без сессій.
Як мені бути?