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;
...全文
260 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
max_min_ 2013-10-21
  • 打赏
  • 举报
回复
猫爪 2013-10-21
  • 打赏
  • 举报
回复
问题已经解决

3,881

社区成员

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

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