我正在尝试构建两个通过UDP套接字进行通信的组件。组件1位于主线程中,组件2位于辅助线程中。该应用程序的多个副本可以同时在同一台机器上运行,因此我无法使用固定端口。该程序还需要在Windows和Linux上运行。
我一直试图通过绑定2个QUdpSockets来指定端口为0(要求Qt为我选择一个空闲端口)来做到这一点。然后我将第一个QUdpSocket和第二个套接字的参数传递给组件1,为它提供发送和接收所需的全部内容。对于组件2,我认为我不能跨越线程边界传递QUdpSocket,所以我只传递参数并在辅助线程中构造+绑定套接字。
但是,辅助线程中套接字的绑定失败。大概是因为主线程中的套接字已经绑定到同一个端口。
在构建任何一个对象之前,有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
我认为我不能跨越线程边界传递QUdpSocket
你可以这样做。只是不要同时在你的两个线程中使用它。