8月份到12月初,还没搞定?
【 在 hengcuiyuan 的大作中提到: 】
: 我现在是多线程环境,通信程序在一个独立的线程里面,有点坑的是三菱的3E帧结构不含数据包的序列号的,所以我只能同步通信,我现在是只能一次通信完成之后再做下一次通信,信道被占用的时间里面就用QCoreApplication::processEvents去做事件处理。这种情况下,我发现:1、Debug模式下,数据包到了之后readyRead信号没有被触发,但release模式下,readyRead大部分情况被触发了;2、release模式下,偶尔出现数据包呆在协议栈里面几秒钟,readyRead不被触发,但是下一个数据包到来的时候,readyRead被立刻触发,导致粘包,无法处理;3、数据通信的时间很短,但是从协议栈到socket的时间要长的多。
: 可能是我的代码真写的有问题,我现在是需要读的时候读,需要写的时候写,每次数据传输的报文很小,再加上多线程环境,又没法搞异步通信,特别凌乱。我打算简单点,直接设定定时器来读和写,读完写,写完读,一次性把所有的数据读或者写完,也许可以解决这个问题。
:
--
FROM 114.245.195.*