槽函数多次触发
原因:
在函数中连接了一个connect,后续又多次调用了该函数,而且没有断开前面的连接,所以就会导致对应的槽函数被多次触发,每次+1;
解决方法:
第五个参数指定为Qt::UniqueConnection,使其唯一,或者是发出信号后disconnect也可以
服务器使用线程池来管理客户端,在run函数中使用事件循环来阻塞线程,导致只有一个客户端才能通信(触发read信号)
版本为qt5.12.2 mingw32
我在 qt6.2.4 使用好像是没问题的,也可能是我哪里写错了
//事件循环
while (!thread()->isInterruptionRequested()) {
QCoreApplication::processEvents();
}
解决方法
使用waitForReadyRead来阻塞线程,不需要再写readyRead信号了
while(m_socker->waitForReadyRead())
{
//实现代码
}
tcp进行数据发送
我是将要发送的数据保存在一个uint_8数组里面的,刚开始第一次没问题,到了后面就开始出现问题,然后我将数据一打印,发现乱码了,然后在数据组包之前将数组设为0就好了,我估计可能是数据发送完没有对数据组进行重置还是什么