I wonder how it is possible to turn Boost :: asio socket into basic_socket_iostream. How to do it?
you can use tcp::iostream::rdbuf() to get a pointer to socket::basic_socket_streambuf , then assign() descriptor.
#include <boost/asio.hpp> int main() { boost::asio::io_service io_service; boost::asio::ip::tcp::socket socket( io_service ); boost::asio::ip::tcp::iostream stream; stream.rdbuf()->assign( boost::asio::ip::tcp::v4(), socket.native_handle() ); }
Although it is very minimized, and I highly recommend not to go along this route. As pointed out by Ralf's answer , and my answer to your related question, you really should use deadline_timer for this.
source share