All pastes #993246 Raw Edit

Stuff

public text v1 · immutable
#993246 ·published 2008-04-22 14:18 UTC
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;
}