我有两个类(Negotiator,Client),它们都有自己的boost :: asio :: ip :: tcp :: socket。协商完成后,有没有办法将套接字对象传递给客户端。我期待着做那样的事情:
boost::asio::ip::tcp::socket sock1(io);
//...
boost::asio::ip::tcp::socket sock2;
sock2.assign(sock1);
此操作必须保证在sock1被销毁时不会关闭连接。
答案 0 :(得分:2)
在堆上创建套接字(新),并将指针从协商器传递给客户端。
答案 1 :(得分:2)
我认为你可以:
然而:
答案 2 :(得分:0)
截至当前版本的Boost,您现在可以使用
获取句柄boost::asio::ip::tcp::socket::my_socket;
auto my_handle = my_socket.native_handle();
而不是旧的native()
成员函数。