Advertisement
Guest User

Untitled

a guest
Mar 25th, 2011
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. /*
  2.  * server.cpp
  3.  *
  4.  *  Created on: 25.03.2011
  5.  *      Author: Konrad Johannes Reiche
  6.  */
  7.  
  8. #include "server.h"
  9.  
  10. server::server(int port) {
  11.  
  12.     try {
  13.         boost::asio::io_service io_service;
  14.         tcp_server server(io_service, port);
  15.         io_service.run();
  16.     } catch (std::exception& e) {
  17.         std::cerr << e.what() << std::endl;
  18.     }
  19. }
  20.  
  21. server::~server() {
  22.     // TODO Auto-generated destructor stub
  23. }
  24.  
  25. tcp_server::tcp_server(boost::asio::io_service& io_service, int port) :
  26.     acceptor_(io_service, tcp::endpoint(tcp::v4(), port)) {
  27.     start_accept();
  28. }
  29.  
  30. void tcp_server::start_accept() {
  31.     tcp_connection::pointer new_connection = tcp_connection::create(
  32.             acceptor_.io_service());
  33.  
  34.     acceptor_.async_accept(new_connection->socket(), boost::bind(
  35.             &tcp_server::handle_accept, this, new_connection,
  36.             boost::asio::placeholders::error));
  37. }
  38.  
  39. void tcp_server::handle_accept(tcp_connection::pointer new_connection,
  40.         const boost::system::error_code& error) {
  41.     if (!error) {
  42.         new_connection->start();
  43.         start_accept();
  44.     }
  45. }
  46.  
  47. void tcp_connection::start() {
  48.     message_ = "I'm alive\n";
  49.  
  50.     boost::asio::async_write(socket_, boost::asio::buffer(message_),
  51.             boost::bind(&tcp_connection::handle_write, shared_from_this(),
  52.                     boost::asio::placeholders::error,
  53.                     boost::asio::placeholders::bytes_transferred));
  54. }
  55.  
  56. void tcp_connection::handle_write(const boost::system::error_code&, size_t) {
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement