hello, I start using asio in my project and I don't know how to reuse a socket... some code: void server(asio::io_service& io_service, short port) { tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port)); for (;;) { tcp::socket *sock=new tcp::socket(io_service); a.accept(sock); session(sock); } } void session(tcp::socket *sock) { sock->read(...); .... sock->send("reply"); } when I send the first request everything is ok but when I try for a second one I never get a reply or an error from the server... The easy way would be to have a thread/connection model so I could block each thread waiting to a socket but I want to use a thread-pool for my server so I want to know if there is any callback parameter I could pass to my socket and when there is data availiable in the socket the asio would fire the callback function . thanks in advance, george