完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我用TCP协议接收下位机发送的数据,由于数据量很大,所以TCP一帧一帧的发送。请问我该怎么设置一个缓存区将数据先缓存起来然后一起取出,由于我对TCP不是很了解,所以不知道怎么设置缓存区,导致收到的数据只有最后一帧的数据,求大神帮忙看下程序指点一下。
|
|
相关推荐
40个回答
|
|
|
版本过高,看不到,我觉得可以用队列,收到数据就入队
|
|
|
|
|
|
|
|
|
|
|
bamenwhj 发表于 2015-12-13 11:51 下位机一次发送的数据量很大,所以一帧一帧的传送,我程序里面读取TCP数据函数放在while循环中,所以每次也是一帧一帧读,但前一次读取的数据会被下一次数据覆盖。我在网口调试助手里面发送123给我的程序,重复发送10次,结果只有一次的数据就显示123而不是123连续十次出现,请问我该怎么解决?
|
|
|
|
|
|
用消息队列吧,或者TDMS文件等中间介质
|
|
|
|
|
|
本帖最后由 bamenwhj 于 2015-12-15 15:00 编辑
mean123 发表于 2015-12-15 12:46 1、模式为默认值,超时为-1,字节大小为30=3*10,即一次读出10个123:“123123123123123123123123123132”; 关于【读取TCP数据】,模式一般选取默认值(即标准模式),读取的内容由字节大小决定,对于变长度的数据,一般的协议中会用前两位表示这一帧数据的长度,先读出数据长度,再读数据。 2、如果你要的是10次123(而不是一次连续的10个123),那你的程序也可以认为是正确的,只是读的很快,你看不出连续的10次。如果你想要记录相应的数据,可以考虑入队列的方法,每次接收到即入一次队列。 |
|
|
|
|
bamenwhj 发表于 2015-12-15 14:59 我按照你说的把模式改为默认超时设为-1,通过网调试助手发数据过了很久才收到怎么回事,我改为immediate,就可以立即收到数据。这是什么问题? |
|
|
|
|
mean123 发表于 2015-12-15 15:16 多看帮助文档,多看范例,先把基础的看的差不多再问问题。 |
|
|
|
|
|
看看。。。。。。。。。。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
请问楼主最后是怎么改的呢?
|
|
|
|
|
|
你好,我也正在做这方面的问题,有问题想要咨询
|
|
|
|
|
|
你好,我也正在做这方面的问题,有问题想要咨询
|
|
|
|
|
|
|
|
|
|
|
|
学习一下楼主的大作!
|
|
|
|
|
|
学习一下楼主的大作!
|
|
|
|
|
|
学习一下,非得满足20个字符这样够不够。
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
请教大神,在labview里面对实时扫描资源中的C系列模块NI9234进行配置发生非预期错误
1671 浏览 0 评论
1569 浏览 0 评论
LABVIEW 2023 Q1调用python后一直报错1671
1946 浏览 2 评论
5094 浏览 3 评论
4986 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:47 , Processed in 0.906442 second(s), Total 80, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1100