金牌会员
 
- 积分
- 1067
- 金钱
- 1067
- 注册时间
- 2012-6-18
- 在线时间
- 158 小时
|
10金钱
最近,一个接口设备项目,需要对某设备发出的UDP 数据 进行解析显示,输出一帧数据为:
44 41 54 41 2A 29 0 0 0 BF DE A0 41 BF DE A0 41 0 0 48 42 0 0 48 42 0 0 48 42 0 0 48 42 0 0
48 42 0 0 48 42 2A 0 0 0 17 F2 7C 42 17 F2 7C
现在遇到的问题是如果采用指针判断非空则只能接收完data*,帧头后续数据将错过。但是设备发出的udp 帧无帧尾,且不定长。
一时没有好想法。求助。
void udp_input_recv(void *arg,struct udp_pcb *upcb,struct pbuf *p,struct ip_addr *addr,u16_t port)
{
u32 data_len = 0;
struct pbuf *q;
if(p!=NULL){ //只能接收6个字节帧头
。。。。。
|
最佳答案
查看完整内容[请看2#楼]
如果要这样接收,从原理上你得行得通才行。判断非0是肯定不行的了。
要嘛有特定的字符串,要嘛通过超时判断。
|