weiquji 发表于 2009-5-8 21:08:18

一个关于字符串读的通信协议

有个问题请教各位:我用两台电脑仿真数据发送和接受,发送端按照协议封装好数据并向接收端发送,当接收端收到字符串后,按照协议再解释,解释时由于接收字符串要识别出字头,所以,我设计了如下的协议程序,但是存在的问题是,实际情况中,收到的的字符未必一次能收全,比如,当字符串bb 66 3256 5563 2333间隔时间比较长传到接收端时,即第一次收到bb 66 3256,长度小于18,被舍去,第二次收到5563 2333,没有字头也被舍去了,但事实上这就出错了,并没有解释出bb 66 3256 5563 2333这个字符串,我想用寄存器存放长度小于18时的数据,下一次数据传过来时并入到寄存器,这样长度可能就够了,导师提示我和数据结构中的链表功能比较相似,有点糊涂,请高人指点下,附图http://www.cpubbs.com/myspace/attachment/200905/8/111254_12417880071YR1.jpg

user110 发表于 2009-5-8 22:05:29

定长读。如何?

user110 发表于 2009-5-8 22:05:47

意思是,每次读相等长度的数据回来。

weiquji 发表于 2009-5-8 22:10:49

不行啊,导师说考虑实际情况时,数据发送可能不是一下子就发完的,一百次发送中可能只有一次正确,但这一次发送如果是分两次读出来的,那就必须把第一次读的存起来,和第二次的一并读才行,这一点我亟待解决 3# user110

老头子 发表于 2009-5-8 22:20:52

读回来即压入队列queue。后面慢慢一节节弹出。

老头子 发表于 2009-5-8 22:20:57

队列肯定可以。

weiquji 发表于 2009-5-8 23:49:43

额,是这个理,不过我对队列不太清楚啊,也是刚学这软件,那请问labview中怎么使用队列啊,可否画个图演示下{:5_403:} 6# 老头子

weiquji 发表于 2009-5-9 10:25:45

allqq-mogudiandian-48all有点抓头啊

喔喔 发表于 2009-5-9 21:08:02

慢慢看看这个论坛的学习文件,你会收获很多

喔喔 发表于 2009-5-9 21:08:05

慢慢看看这个论坛的学习文件,你会收获很多

喔喔 发表于 2009-5-9 21:10:12

8# weiquji
真没办法你就用C语言写一段队列的功能,把它嵌进去
页: [1]
查看完整版本: 一个关于字符串读的通信协议