qt中,使用UDP收发数据的时候,只能存最后一行数据?

图片说明
图片说明
这是发送设备的代码 读取一个txt文件,读一行发一行,使用UDP进行传输。
使用另一台设备接收并将数据保存,使用的是readyread触发slot函数,slot函数中使用while(socket->hasPendingDatagrams())进行判断并读取和储存,但是打开保存的txt文档后, 只有存了发送数据的最后一行。
请各位帮忙分析一下 感激不尽。

2个回答

最近刚接触qt,在将数据写入文件的时候遇到过这种情况,我的情况是采用信号槽的方法,
当触发信号连接槽时打开文件将数据写入文件,发现只有最后一次的数据写入文件,后面发现
是因为每次重复打开文件,后面来的数据会覆盖掉前面已经写入的数据,解决办法是在每次打开文件的时候
改成 file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);在文件后面追加写入数据
,这样就不会覆盖掉前面的数据了。希望能给你点帮助,也不知道行不行,刚接触qt。

另外 当接收设备的qt使用dubug在循环中一步一步读的时候,保存的数据是完整的,不debug直接运行的话,只能保存最后一行。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐