This is my function Client::send():

void Client::send(const string &message) {

       ostream request_stream(&request);
       request_stream << message;

       io_service.run();
}

What are you doing with request_stream? I don't see in your send() function any call to async_write or so. Besides, running io_service here doesn't seem to make sense...
Please, refer to the tutorial to understand the basic usage patterns of asio:
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/tutorial.html