gpt4 book ai didi

c++ - QTcpSocket 可以释放它的描述符吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:14 27 4
gpt4 key购买 nike

QTcpSocket 是否有可能释放其描述符,以便可以将套接字的所有权转移到不同线程上的另一个 QTcpSocket 对象,或者转移到 QSslSocket,无需关闭/中断 socket ?

socket1.setDescriptor(descriptor);

// .....

descriptor = socket1.descriptor();
socket1.release(); // <--- Is there a way to do this?
socket2.setSocketDescriptor(descriptor);

最佳答案

不,一旦将套接字描述符分配给 QTcpSocket,您就不能释放它.

但我不确定您是否需要这样做。 QTcpSocket通常可以使用 moveToThread 移动到另一个线程,约束与任何移动相同QObject :

  • moveToThread应该在对象当前所属的线程内调用,
  • 对象不能有父对象(您可以使用 theObject->setParent(0); 删除它,或者移动父对象而不是对象),

因为它是一个 QTcpSocket , 接收线程应该运行一个事件循环或者你需要使用 waitFor...该线程中的函数。

This note似乎表明这仅适用于自 Qt 4.7 以来的套接字。

关于c++ - QTcpSocket 可以释放它的描述符吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486559/

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