网络协议解析数据设计和excel辅助生成代码
在设计一个网络协议解析的模块,实现网络协议解析和设置到底层服务程序的操作。软件控制流程为:
1、服务程序获取指令字符串。
2、查找对应指令操作函数,跳转执行。
3、指令操作函数查找指令参数,执行操作。
4、组装返回字符串,发送回客户端。
对于数据结构,尽量简洁明了。整个业务的流程很简单,比较繁琐的是指令的数量比较大。为了避免过多的代码编辑(switch case 或者if else if),设计的数据结构如下:
char cGroup[MAX_GROUP_LEN];//1、服务程序获取指令字符串。填充 cGroup//2、查找对应指令操作函数,跳转执行。for(i = 0; i < GroupLAST;++i){if(strcasecmp(cGroup,stGroupParse[i].m_pcMsg) == 0){if(eOperateType == List) iRet = stGroupParse[i].m_ListGroup();else iRet = stGroupParse[i].m_UpdateGroup(); return iRet;}}
这个用法比较怪异,但是比较适用于这次遇到的字串处理较多,逻辑简单,重复工作量大的情况。我上面贴的代码就是这样生成的。
这次用起来也挺有意思的。