rendered paste body#include <boost/asio.hpp>
#include <boost/array.hpp>
class Packet {
public:
Packet() : a(2), b(3) {
buf[0] = boost::asio::buffer( (void *)a, sizeof( a ));
buf[1] = boost::asio::buffer( (void *)b, sizeof( b ));
};
boost::asio::mutable_buffers_1 getBuffer() {
return boost::asio::buffer( buf );
}
int getA() {
return a;
}
int getB() {
return b;
}
protected:
int a, b;
boost::array< boost::asio::mutable_buffer, 2 > buf;
};
int main() {
Packet pack;
try
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 8888));
boost::asio::ip::tcp::socket socket(io_service);
acceptor.accept(socket);
boost::system::error_code ignored_error;
int readbytes = boost::asio::read(socket, pack.getBuffer());
std::cout << "Read " << readbytes << " bytes (" << pack.getA() << " " << pack.getB() << std::endl;
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}