gpt4 book ai didi

c++ - 如何为不同的线程找到并保留可用端口?

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:37 25 4
gpt4 key购买 nike

我正在尝试构建两个通过 UDP 套接字进行通信的组件。组件 1 在主线程中,组件 2 在辅助线程中。这个应用程序的多个拷贝可以同时在同一台机器上运行,所以我不能使用固定端口。该程序还需要同时在 Windows 和 Linux 上运行。

我一直在尝试通过绑定(bind) 2 个指定端口为 0 的 QUdpSockets 来做到这一点(要求 Qt 为我选择一个空闲端口)。然后我将第一个 QUdpSocket 和第二个套接字的参数传递给组件 1,为它提供发送和接收所需的一切。对于组件 2,我不认为我可以跨线程边界传递 QUdpSocket,所以我只传递参数并在辅助线程中构造 + 绑定(bind)套接字。

但是在副线程绑定(bind)socket失败。大概是因为主线程中已经有套接字绑定(bind)到同一个端口。

有什么方法可以解决这个问题,同时在构造任一对象之前仍然知道两个端口?

最佳答案

I don't think I can pass the QUdpSocket across the thread boundary

你可以,那就这样吧。只是不要同时在两个线程中使用它。

关于c++ - 如何为不同的线程找到并保留可用端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317621/

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