补充代码,满足报文协议的封装要求。报文协议如下:
目的地址 |
源地址 |
处理类型 |
数据 |
结束符 |
2bits |
2bits |
4bits |
16bytes |
1bytes |
1000表示请求 1001表示应答 1010表示数据 1011未定义 |
传输的数据 |
固定为0x75 |
填充的报文内容如下:
目的地址 |
源地址 |
处理类型 |
数据 |
结束符 |
用户输入 |
用户输入 |
用户输入 |
0x00、0x01、0x02…0x0E、0x0F |
0x75 |
待修改代码如下:
#include <stdio.h>
//定义报文格式
struct head
{
//!!按照报文协议标准定义位段
};
int main( )
{
struct head one;
int dst, src, type;
int i;
scanf("%x%x%x", &dst, &src, &type);
//!!读取用户输入的头部数据,填充到报文指定位段
for(i=0;i<16;i++)
{
one.data[i] = i;
}
one.tail = 0x75;
//按照字符方式输出
{
unsigned char *p = &one;
for(i=0; i<sizeof(one); i++)
{
printf("%02x", *(p+i));
}
printf("\n");
}
return 0;
}
目的地址 源地址 处理类型
报文数据
0x3 0x1 0xA
a7000102030405060708090a0b0c0d0e0f75