我有两个类(谈判者、客户端),都有自己的 boost::asio::ip::tcp::socket。有没有办法在协商完成后将套接字对象传输给客户端。我期待着做这样的事情:
boost::asio::ip::tcp::socket sock1(io);
//...
boost::asio::ip::tcp::socket sock2;
sock2.assign(sock1);
这个操作必须保证当sock1被销毁时连接不会被关闭。
I think你可以:
- 使用native()成员函数获取sock1的本机句柄
- dup()(或 WSADuplicateSocket())sock1 的本机句柄
- 使用 assing() 成员函数将 dup()-ed 句柄传递给 sock2
However:
- 我不确定,因为我从未尝试过
- 如果你想transfer(而不是共享)从谈判者到客户端的套接字,Dan 使用动态分配的建议可能更简单,使用 unique_ptr (或 auto_ptr)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)