接收到的数据为什么不全?

亚细亚 2009-08-17 12:46:49
两台机器通过GPRS无线连接。A机器中发送如下一组数据:
char buff[9];
buff[0]=0x01;
buff[1]=0x03;
buff[2]=0x07;
buff[3]=0x9F;
buff[4]=0x00;
buff[5]=0x02;
buff[6]=0xF5;
buff[7]=0x51;
buff[8]='\0';
B机器中用串口调试助手接收数据,结果发现接收显示如下:
01 03 07 9F
后面的几个数据没有接收到,如果将buff[4]=0x00 修改为 buff[4]=0x07,结果就能全部收到。 请问这是什么原因?
...全文
190 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdstcwl 2009-08-18
  • 打赏
  • 举报
回复
会不会是发送程序的问题?碰到0x00自动终止,跟踪调试一下试试
chinezwq 2009-08-18
  • 打赏
  • 举报
回复
当作字符串结尾处理了,是不是你接受端处理的时候,没有考虑字符串结尾这个情况,所以碰到结尾就直接显示了,但是在缓冲区却可以看到这些数据
lijianli9 2009-08-17
  • 打赏
  • 举报
回复
你发送的长度不对,
你可以强制发送一定长度的看看?
Leo_red 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dream238 的回复:]
发送,接收的缓冲区都应该是byte类型的数组,并且在发送,接收时指定发送,接收的长度.
如果你发送的长度是用strlen()取的,那么肯定发送不完整的.
[/Quote]
同意,检查里面str***之类的所有函数,都不能用,不只是不完整,还可能出异常呢。
你得这里时发送的地方有问题,发送的函数怎么写的,贴来看过。
ArcRain 2009-08-17
  • 打赏
  • 举报
回复
发送,接收的缓冲区都应该是byte类型的数组,并且在发送,接收时指定发送,接收的长度.
如果你发送的长度是用strlen()取的,那么肯定发送不完整的.
qian_longN1 2009-08-17
  • 打赏
  • 举报
回复
自己写接收程序,不用串口调试助手
亚细亚 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dream238 的回复:]
char buff[9];数据按照字符串来处理,因此遇到0X00就被截断了.
把发送的数据都放到byte buff[9]里就可以了,这样就是普通的字节流了.
[/Quote]
测试还是不行!
码侬 2009-08-17
  • 打赏
  • 举报
回复
可否当成二进制数据处理
ArcRain 2009-08-17
  • 打赏
  • 举报
回复
char buff[9];数据按照字符串来处理,因此遇到0X00就被截断了.
把发送的数据都放到byte buff[9]里就可以了,这样就是普通的字节流了.
亚细亚 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wonsea 的回复:]
或者你发送的时候长度处理按照字符串的来处理了?
[/Quote]
应该怎么写才对?
wonsea 2009-08-17
  • 打赏
  • 举报
回复
或者你发送的时候长度处理按照字符串的来处理了?
亚细亚 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 leo_red 的回复:]
接受这样的消息,不能够用字符串处理,必须用字符数组,带着数据长度处理的。
[/Quote]
接收端是串口调试助手呀。
Leo_red 2009-08-17
  • 打赏
  • 举报
回复
接受这样的消息,不能够用字符串处理,必须用字符数组,带着数据长度处理的。
亚细亚 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanjingwei 的回复:]
当字符串结尾了
[/Quote]
如何处理?
wanjingwei 2009-08-17
  • 打赏
  • 举报
回复
当字符串结尾了
Leo_red 2009-08-17
  • 打赏
  • 举报
回复
你接收的函数怎么写的?贴上来看看喽

现在来看,你的内容是0x00当作字符串结尾了,非0x00当然可以使用。所以你接收的地方写法有问题,当作字符串接受不可见字符的东西,就会出这样的错误。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧