cmpp3.0收发短信、状态报告 求教

猫爪 2013-10-20 11:21:39
这是我 cmpp3 登陆时的一个数据包,这样的数据格式对吗?
27 00 00 00 01 00 00 00 01 00 00 00 --包头
39 30 31 32 33 34 --spid
52 36 27 30 B2 52 D9 9D 51 11 C6 3A D8 F2 53 7F --md5
30 --版本
CF 5B CC 3C --时间戳

包头27 00 00 00代表包长39字节

发送的代码
char sendbuffer[128];
memset(sendbuffer,0,sizeof(sendbuffer));

MessageHeader head; //头
CmppConnectBody connectbody; //请求连接的数据

memset(&head,0,sizeof(head));
memset(&connectbody,0,sizeof(CmppConnectBody));

head.Sequence_Id = cmppsocket.Sequence_Id;
head.Command_Id = CMPP_CONNECT;
head.Total_Length =0x00000027;//sizeof(MessageHeader) + sizeof(CmppConnectBody); //包长度 头+数据

char *spid = "901234";
char *sppas = "1234";

connectbody.Version = 0x30;

CString timestamp = getTimeMMDDHHMMSS();
connectbody.Timestamp = (UINT)atoi(timestamp); //GetTimeStamp();//(unsigned long)atol(timestamp);
memcpy(connectbody.Source_Addr,spid,6); //企业代码s
MD5 md5;
char _md5src[64];
memset(_md5src,0,sizeof(_md5src));

CString str;
str.Format("%d",sizeof(_md5src));
//AfxMessageBox(str);

strcpy(_md5src,connectbody.Source_Addr);
int _len=strlen(_md5src)+9;
sprintf(_md5src+_len,"%s",sppas);
_len += strlen(sppas);
sprintf(_md5src+_len,"%010d",connectbody.Timestamp);
_len += 10;
md5.Md5Decode(_md5src,connectbody.AuthenticatorSource,_len);

memcpy(sendbuffer,&head,sizeof(MessageHeader));
memcpy(sendbuffer+sizeof(MessageHeader),&connectbody,23);
memcpy(sendbuffer+sizeof(MessageHeader)+23,&(connectbody.Timestamp),4);
自己定义的包结构
typedef struct MessageHeader //头部
{
UINT Total_Length; //4 消息总长度(含消息头及消息体)
UINT Command_Id; //4 命令或响应类型
UINT Sequence_Id; //4 消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
}MessageHeader;

typedef struct CMPP_CONNECT_BODY //连接包body部分
{
char Source_Addr[6]; //6 SP_Id,即SP的企业代码
char AuthenticatorSource[16]; //16 MD5(Source_Addr+9 字节的0 +shared secret+timestamp)
byte Version; //1 版本
ULONG Timestamp; //4 时间戳MMDDHHMMSS
}CmppConnectBody;
...全文
259 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
max_min_ 2013-10-21
  • 打赏
  • 举报
回复
猫爪 2013-10-21
  • 打赏
  • 举报
回复
问题已经解决
课程介绍 仓库管理系统主要功能有采购入库,采购退货,销售出库,销售退货,仓库盘点,库存报表,Excel导入导出,按钮级权限控制及系统日志等功能,系统采用SpringBoot ,mybatis,easyui,ajax,mssql数据库等技术开发。提供所有源代码下载,系统功能完善,可直接运行。开发环境项目开发语言:SpringBoot ,mybatis,easyui,ajax,mssql数据库项目运行环境:jdk1.8及以上版本,tomcat8.0及以上版本,sql server2005及以上版本项目开发工具: 本项目开发工具是Intellij Idea课程目标掌握SpringBoot等技术,熟悉仓库管理系统主要功能,采购入库,采购退货,销售出库,销售退货,仓库盘点,系统报表,权限控制及日志等50多门JAVA系列全套课程,包括大一新生到大四毕业的所有JAVA系列技术专业课程,项目实战,商业项目等;基础课程:JAVA初级工程师: 1、计算机基础 2、HTML语言基础 3、C语言从入门到精通+贪吃蛇游戏 4、贪吃蛇游戏 5、SQL SERVER数据库基础 6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件 7、推箱子游戏; 8、仿QQ即时通讯软件;JAVA中级工程师: 9、SQLSERVER数据库高级 10、SQLSERVER从入门到精通(基础+高级) 11、JavaScript从入门到精通, 12、JSP从入门到精通+点餐系统, 13、JSP从入门到精通+在线视频学习教育平台, 14、JSP从入门到精通+大型电商平台; 15、XML从入门到精通, 16、数据结构(JAVA版),JAVA高级工程师: 17、Oracle数据库从入门到精通, 18、ajax+jquery从入门到精通, 19、EasyUI从入门到精通,SSH框架: 20、Struts2从入门到精通课程, 21、Hibernate从入门到精通课程, 22、Spring从入门到精通课程; 23、Echarts从入门到精通, 24、Excel基于POI的导入导出工作流框架: 25、Activiti流程框架从入门到精通 26、JBPM流程框架从入门到精通SSM框架: 27、MyBatis从入门到精通 28、Spring MVC从入门到精通 29、Spring Boot入门到精通 30、Spring Cloud入门到精通面试题: 31、职业生涯规划及面试题集锦商业项目: 32、微信公众号在线支付系统 33、微信生活缴费在线支付系统 34、支付宝生活缴费在线支付系统 35、在线考试系统 36、人脸识别智能考试系统(人工智能AI) 37、仓库管理及质量追溯系统 38、房屋出租管理系统APP(身份证识别) 39、手机订餐管理系统, 40、CRM客户关系管理系统 41、大型房地产CRM销售管理系统 42、CMPP2,CMPP3移动网关系统 43、仓库管理系统(SpringBoot) 44、影院在线售票系统(仿猫眼电影)人工智能: 45、人脸识别在线考试系统 46、人脸识别系统项目实战 47、车牌识别停车场管理系统 48、身份证识别系统项目实战 49、营业执照识别系统项目实战 50、名片识别管理系统

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧