我尝试构建一个使用QT的多线程游戏服务器,因此,每个客户端都是一个基于线程的独立线程" QThread"。现在我需要将数据发送到其他客户端(在其他线程中)同一个游戏室。例如,当房主关闭游戏室时,游戏服务器需要发送到" room_closed"消息给同一个soom中的其他客户端,但是有一个错误:
QSocketNotifier:无法启用或禁用套接字通知程序 另一个线程
ps:我尝试使用sinals / slots,但仍有错误:
QObject:无法为不同的父级创建子级 线。 (Parent是QNativeSocketEngine(0x161764e8),父亲的主题是 ClientThread(0x16196f10),当前线程为QThread(0x14a17278)
我该怎么办?
答案 0 :(得分:1)
似乎你没有正确处理QObjects和QThreads而且Qt抱怨它。
我建议你看一下Qt文档:
快速指南:
QObject::thread()
)相关联。QObject::moveTothread()
更改其关联的线程,但QObject必须没有父级,并且必须从QObject当前关联的线程进行调用。答案 1 :(得分:-1)
您调用了QTcpSocket :: write多个therads。我用信号/插槽解决了这个问题。