高分求教:asn.1生成普通网络协议的问题
最近参与一个系统有太多的网络协议需要自己去构造和分析,听说asn.1能
自动构造协议,但是看了很久还是不得门入,想请教高手,我能否构造如下一个
结构?
#pragma pack(1)
typedef struct
{
uint8_t cFlag1;
uint32_t dwAddress1;
uint8_t cFlag2;
uint32_t dwAddress2;
}SOME_INFO;
typedef struct
{
char cMagicChar;
SOME_INFO stInfo1;
char sInfo[128];
char cLength;
char sVarData[0];
}MIX_INFO;
#pargma
问题点数:0、回复次数:3Top
1 楼UPCC(杂食动物)回复于 2005-04-03 20:15:32 得分 0
应该可以啊!怎么啦?Top
2 楼UPCC(杂食动物)回复于 2005-04-03 21:39:23 得分 0
总觉得char sVarData[0];不大好,但应该只是警告而已!因为数组只要不小于0就可以了!
假如你的结构体定义成
struct
{
。。。。
}SOME_INFO;
那么就是不可以的,这时SOME_INFO只是结构体的一个变量了,
typedef struct
{
。。。。
}SOME_INFO;
这里是一个:定义结构体,typedef结构体的一个名字”Top
3 楼szhunter(hunter)回复于 2005-04-03 21:45:17 得分 0
谢谢UPCC,能否帮忙给一份对应的asn.1声明? 我看了很久都没搞清楚 char 是怎么声明的
SOME_INFO是MIX_INFO内的一个嵌套结构,我在asn.1的例子里也没有找到
好像 asn.1只能在结构里面声明一个结构的指针?
vardata的长度是由cLength来决定,1是为了节省空间,2是为了简化获取vardata地址
Top




