MMS_encapsulation.cpp
资源名称:MMS.rar [点击查看]
上传用户:szhqbq
上传日期:2014-07-08
资源大小:46k
文件大小:3k
源码类别:
手机彩信(MMS)编程
开发平台:
Visual C++
- #include <string.h>
- #include <stdio.h>
- int main()
- {
- unsigned char mmsData[30000];
- unsigned char *str,*pzMmsData=mmsData;
- int i=0,j=0;
- memset(pzMmsData,0,sizeof(mmsData));//初始化
- //标题编码
- mmsData[0]=0x8C;mmsData[1]=0x80;
- mmsData[2]=0x98;mmsData[3]=0x30;
- mmsData[4]=0x31;mmsData[5]=0x32;
- mmsData[6]=0x33;mmsData[6]=0x34;
- mmsData[7]=0x35;mmsData[8]=0x36;
- mmsData[9]=0x37;mmsData[10]=0x38;
- mmsData[11]=0x39;
- mmsData[13]=0x8D;mmsData[14]=0x90;
- //源地址
- mmsData[15]=0x89;mmsData[16]=0x1A;//地址长度
- mmsData[17]=0x80;
- pzMmsData = &mmsData[18];
- strcpy(str,"+8613570596080/TYPE=PLMN");
- memcpy(pzMmsData,str,strlen(str));
- //目的地址
- mmsData[43]=0x97;
- pzMmsData =&mmsData[44];
- strcpy(str,"+8613570596080/TYPE=PLMN");
- memcpy(pzMmsData,str,strlen(str));
- mmsData[69]=0x96;
- //消息主题
- pzMmsData=&mmsData[70];
- strcpy(str,"My first test message!");
- memcpy(pzMmsData,str,strlen(str));
- i=70+strlen(str)+1;
- //Content-type
- mmsData[i++]=0x84;mmsData[i++]=0x1B;//值的长度
- j=i+0x1B;//指向正文部分;
- mmsData[i++]=0xB3;mmsData[i++]=0x89;
- //类型参数
- pzMmsData=&mmsData[i];
- strcpy(str,"application/smil");
- memcpy(pzMmsData,str,strlen(str));
- i+=strlen(str)+1;
- //起始参数
- mmsData[i++]=0x8A;
- pzMmsData=&mmsData[i];
- strcpy(str,"<0000>");
- memcpy(pzMmsData,str,strlen(str));
- //正文编码
- i=j;
- mmsData[i++]=0x02;//正文只有两部分
- //第一部分(smil部分)
- mmsData[i++]=0x23;//内容类型+其他可能标题的长度
- //数据长度
- mmsData[i++]=0x85;
- mmsData[i++]=0x1D;
- j=i+0x23;//指向数据部分
- //内容类型+其他可能标题(文本编码)
- pzMmsData=&mmsData[i];
- strcpy(str,"application/smil");
- memcpy(pzMmsData,str,strlen(str));
- i+=strlen(str)+1;
- pzMmsData=&mmsData[i];
- strcpy(str,"Content-ID");
- memcpy(pzMmsData,str,strlen(str));
- i+=strlen(str)+1;
- pzMmsData=&mmsData[i];
- strcpy(str,"<0000>");
- memcpy(pzMmsData,str,strlen(str));
- //实际数据
- i=j;
- j=j+0x29D;//指向第二部分
- pzMmsData=&mmsData[i];
- strcpy(str,"<smil xmlns="http://www.w3.org/2001/SMIL20/Languae">n
- <head>n
- <layout>n
- <root-layout width="160" height="140"/>n
- <region id="Image" width="160" height="120" left="0" top="0"/)n
- <region id="Text" width="160" height="20" left="0" top="120"/>n
- </layout>n
- </head>n
- <body>n
- <image src="test.jpg" region="Image"/>n
- <text src="HelloWorld.txt" region="Text"/>n
- </body>n
- </smil>n
- ");
- memcpy(pzMmsData,str,strlen(str));
- //正文第二部分(image/jpg)编码
- i=j;
- mmsData[i++]=0x11;//内容类型+其他可能标题长度
- mmsData[i++]=0x8A;mmsData[i++]=0x7B;//实际数据长度
- j=i+0x11;
- //内容类型+其他可能标题
- mmsData[i++]=0x9D; //image/jpg的码值
- mmsData[i++]=0x8E;//内容位置
- pzMmsData=&mmsData[i];
- strcpy(str,"test.jpg");
- memcpy(pzMmsData,str,strlen(str));
- //实际数据
- i=j;
- j=j+0x57B;//指向第三部分
- ..........
- //正文第三部分(text/plain)编码
- i=j;
- mmsData[i++]=0x11;//内容类型+其他可能标题长度
- mmsData[i++]=0x00;mmsData[i++]=0x0E;//实际数据长度
- j=i+0x11;
- //内容类型+其他可能标题
- mmsData[i++]=0x83;//text/plain码值
- mmsData[i++]=0x8E;//内容位置
- pzMmsData=&mmsData[i];
- strcpy(str,"HelloWorld.txt");
- memcpy(pzMmsData,str,strlen(str));
- //实际数据
- i=j;
- }