gpt4 book ai didi

c++ - boost::asio 和套接字所有权

转载 作者:太空狗 更新时间:2023-10-29 21:08:28 25 4
gpt4 key购买 nike

我有两个类(谈判者、客户),都有自己的 boost::asio::ip::tcp::socket。有没有办法在协商完成后将套接字对象传输给客户端。我期待着做这样的事情:

 boost::asio::ip::tcp::socket sock1(io);
//...
boost::asio::ip::tcp::socket sock2;
sock2.assign(sock1);

这个操作必须保证当sock1被销毁时连接不会被关闭。

最佳答案

认为您可以:

  • 通过native()成员函数获取sock1的native handle
  • dup()(或 WSADuplicateSocket())sock1 的本地句柄
  • 使用 assing() 成员函数将 dup()-ed 句柄传递给 sock2

但是:

  • 我不确定,因为我从未尝试过
  • 如果您想传输(而不是共享)套接字从协商器到客户端,Dan 使用动态分配的建议可能更简单,使用 unique_ptr(或 auto_ptr)

关于c++ - boost::asio 和套接字所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com