gpt4 book ai didi

c++ - QTcpServer 在不同的线程中接收和发送

转载 作者:行者123 更新时间:2023-11-30 05:27:53 26 4
gpt4 key购买 nike

我在 QT 框架 (c++) 中有一个软件,它可以将处理过的(本地)数据发送到其他服务器并接收在其他服务器上处理过的相同(外部)数据并进行比较。

当处理大量本地数据时会出现问题,外部数据会被缓冲并且在发送所有本地数据之前不会进入比较过程。我需要在特定时间范围内比较数据,因此这会导致超时。

一个想法是使用一个线程调度本地数据,另一个线程接收和比较外部数据。 QTcpServer 可能需要一个互斥锁来保护它免于同时读写。

在 QT 环境中,这是否可能只用一个连接,或者一个连接用于发送,一个用于接收会更好吗?

我检查了财富服务器示例 http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html但我需要知道在同一个连接上使用不同的线程发送和接收是否可能和合乎逻辑。

附言。我是多线程的新手,所以如果我误解了一些概念,我深表歉意。

最佳答案

在没有看到任何代码的情况下,很难明确地回答这个问题。但是,这可能会让您走上正确的轨道...

我不希望您需要不同的线程来发送/接收数据; QTcpSocket 是异步的。

听起来您用来处理数据的架构可能需要修改。

foreign data is buffered and doesn't go into comparison process until all local data is sent

这听起来更像是一个问题,也是多线程有益的领域。因此,使用多线程处理数据,而不是控制服务器之间的通信。

正如您所说的多线程新手,我建议您先阅读 this article并将其示例用作模板。

关于c++ - QTcpServer 在不同的线程中接收和发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050276/

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