You can set the boost::asio::ip::tcp::socket object to the stream buffer:
Live on coliru
#include <boost/asio.hpp> namespace ba = boost::asio; using ba::ip::tcp; int main() { ba::io_service svc; tcp::socket s(svc); // eg connect to test service s.connect({{}, 6767}); tcp::iostream stream; stream.rdbuf()->socket() = std::move(s); for (std::string line; getline(stream, line);) { std::reverse(line.begin(), line.end()); stream << line << std::endl; } }
When working with a netcat session on port 6767, which transmits:
This is Not so bad After all
Replies received:
si sihT dab os toN lla retfA
source share