我甚至不确定这个问题是否有意义,但我试图解决以下问题,而不必重写大部分代码。
我有一个tcp服务器,它使用带有boost :: asio :: async_read_until和boost :: asio :: write函数的tcp :: socket进行读写。现在有一个用例能够从文件流到此套接字。 tcp :: iostream是执行此操作的理想方式;我可以使用当前打开的tcp :: socket创建一个这样的实例吗?
答案 0 :(得分:1)
您可以像这样分配底层套接字:
#include <boost/asio.hpp>
#include <iostream>
using boost::asio::ip::tcp;
int main() {
boost::asio::io_service svc;
tcp::socket s(svc);
s.connect(tcp::endpoint {{}, 6767});
tcp::iostream stream;
stream.rdbuf()->assign(tcp::v4(), s.native_handle());
std::cout << stream.rdbuf() << std::flush;
}