(高分请教)如何解析报文?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(高分请教)如何解析报文?相关的知识,希望对你有一定的参考价值。

typedef struct FRAME
INT16 DestAddr; // 目的地址
INT16 SourceAddr; // 源地址
INT16 Command; // 命令
INT16 Len; // 帧长,小于1024,内容的长度不包括报文头
INT8U MoreFollows; // 后续帧标志
INT8U FrameIndex; // 帧计数
INT16 Bak2; // 备用
FRAME1;
报文头是这样的,那么我想实现的功能是,发送端发送过来报文,接收端接收报文后如何解析,(利用固定buf),也就是说,我收到这个报文头,把数据解析后,要发另一个结构体的信息给发送端,那么我放在一个buf里面,怎么放呢?
还有就是如何循环接收呢?怎样限制?循环结束条件?根据那个报文头,该如何进行这个过程,协议时UDP+组播通信,
通信部分我已经做出来了,现在关键是解析报文这个过程,以及循环收发这个过程,怎么解决,不需要完全的代码,但是我不明白的必须说清楚,把用什么语句实现下出来,或者有代码的话给我发邮箱653996724@qq.com,灌水的别想拿分,回答的好的加分!
能不能给个例子,报文头结构体就是那样,没法自己定义。希望有相关例子的给个,好的话多多加分 谢谢各位高手了

如果你不知道报文数据大小的话,最好设置一个报文数据开始与结束标志,然后在接收端固定大小,比如512字节分段接收报文,每次接收判断接收的最后一位是否为结束标志,如果不是,则继续接收。接收buf的初始大小可以随便给一个,当数据溢出时,则再申请新的内存,然后拷贝数据就行了。

数据的循环接收一般可以放在一个单独的线程里面,可以在线程里面持续接收报文,然后发到报文解析端就可以了。程序结束时,只要终止线程就可以停止接收报文了。
参考技术A 强制类型转换

FRAME1 *p=(FRAME1 *)buf;

p->DestAddr=...;
...

接收的时候,先接收sizeof(FRAME1)字节,再根据FRAME1.Len来接收帧数据

INT8U MoreFollows; // 后续帧标志
这个应该可以用来作为条件来判断是否结束,具体要看协议的说明

高分请教.htaccess规则写法..URL 301

问题详见图片,不知道怎么的,老发不出问题,用图片试下:
简单说下,我的域名 aaa。com, 想重定向到 aaa。com/blog目录,但是其他url,比如aaa。com/xxx这种url不重定向,请问htaccess 文件应该怎么写呢?

这个是关键
RewriteRule ^(.*)$ xxx.com/blog/$1 [R=301,L]
如果只需要把 http://aaa.com/ 301转向到 http://xxx.com/ 其它不管的话,应该是
RewriteRule ^$ http://xxx.com/blog/ [L,R=301]追问

谢谢,那请问下,如果是除了aaa。com/blog这个url不转发,其他都转发应该怎么写呢?

追答

那就加条件
RewriteCond %HTTP_HOST ^aaa\.com$
RewriteCond %REQUEST_URI ^/blog

参考技术A 看不到 大图追问

点击图片或者保存下来看呢? 我这里没法补充问题,用文字发出来,baidu就给我吞了

以上是关于(高分请教)如何解析报文?的主要内容,如果未能解决你的问题,请参考以下文章

高分请教conn.asp连接设置

高分请教:WIN10加域后,多种功能受限

(高分请教)256色的定义是啥?

Hadoop两个常识点,高分请教

Hadoop两个常识点,高分请教

高分请教高手一个绘制隐函数三维图的问题(MATLAB)