打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mms?pdu?3
userphoto

2010.02.05

关注
mms pdu 3
(2009-06-25 16:54:18)
标签:杂谈 分类:it

void CMMSEncoder::setMMSHead(char *pFrom,char *pTo,char *pSubject,int nMultipartRelated,int nChoiceType)
{
        memset(m_szFrom,0,sizeof(m_szFrom));
        if(pFrom)
        {
                strcpy(m_szFrom,pFrom);
        }
        memset(m_szTo,0,sizeof(m_szTo));
        if(pTo)
        {
                strcpy(m_szTo,pTo);
        }
        memset(m_szSubject,0,sizeof(m_szSubject));
        if(pSubject)
        {
                strcpy(m_szSubject,pSubject);
        }
        m_nIsMultipartRelated=nMultipartRelated;
        m_nChoiceType=nChoiceType;
}
int CMMSEncoder::encodeHead(char *pHeader,char *pFrom,char *pTo,char *pSubject)
{
        int nIndex=0;
        pHeader[nIndex++]=0x8C;       // X-Mms-Message-Type
        if(m_nChoiceType)             //m-send-req
        {
                pHeader[nIndex++]=0x80;   //m-send-req
    }
        else
        {
                pHeader[nIndex++]=0x84;  // m-retrieve-conf
        }
        pHeader[nIndex++]=0x98;  // transaction-id mms header
        char szMessageId[12]={0};
        m_MessageTransactionId=time(NULL);
        nIndex=nIndex+sprintf(&pHeader[nIndex],"%08X",m_MessageTransactionId);
    pHeader[nIndex++]=0x00;  

        pHeader[nIndex++]=0x8D;  // X-Mms-Version
        pHeader[nIndex++]=0x90;  // 1.0     
    if(pFrom)
         
                if(pFrom[0])
                {
                        int iFromLen=strlen(pFrom);
                        pHeader[nIndex++]=0x89;       //  From mms header
                        pHeader[nIndex++]=iFromLen+2; //  address-length
                        pHeader[nIndex++]=0x80;       //  address-present-token
                        memcpy(&pHeader[nIndex],pFrom,iFromLen);
                        nIndex=nIndex+iFromLen;
                        pHeader[nIndex++]=0x00;       //  string terminator
                }
        }

if (pTo && (*pTo) )
        {
            int iToLen=strlen(pTo);
                pHeader[nIndex++]=0x97;     //  To mms header
        memcpy(&pHeader[nIndex],pTo,iToLen);
                nIndex=nIndex+iToLen;
                pHeader[nIndex++]=0x00;     //  string terminator
        }
       
        if(pSubject)
        {
                if(pSubject[0])
                {
                int  iSubjectLen=strlen(pSubject);
                    int  nSubject_UTF_8_Len;            //标题***UTF-8的长度
                   char *pSubject_UTF_8 =(char *) alloca (iSubjectLen* 3 + 1 ); //new char[nSubjectLen* 3 + 1 ]={0};
                        GB2312ToUTF_8(pSubject, iSubjectLen,pSubject_UTF_8 );        //标题***UTF-8
            nSubject_UTF_8_Len=strlen(pSubject_UTF_8);
                        pHeader[nIndex++]=0x96;     // Subject
            pHeader[nIndex++]=nSubject_UTF_8_Len + 1 + 1 ;
            pHeader[nIndex++]=0xEA;
                        memcpy(&pHeader[nIndex],pSubject_UTF_8,nSubject_UTF_8_Len);
                        nIndex=nIndex+nSubject_UTF_8_Len;
                        pHeader[nIndex++]=0x00;     // string terminator
                }
        }

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OpenSSL RSA 加密、解密
c++ 读取文件夹里的每个文件并复制到另一个文件夹
VC下的目录文件的复制.(SHFileOperation)
vb API实现复制,转移,删除文件与文件夹
VB操作文件夹的几个方法
Flex4 用LineChart实现实时曲线图,并在其中添加自定义的虚线水平线
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服