CMPP的SUBMIT 包的CODE SAMPLE

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

if(int(sLabel.size())<100) return false;

CPKMsg pkMsg;

if(!pkMsg.stPK(sLabel,sBody))

{

ostringstream oss;

oss<<"Message is error.Leabel:"<<sLabel<<"Body:"<<sBody;

gRunInfo.AddInfo(oss.str());

}

int nPkNum = int(pkMsg.m_vBody.size());

for(int i=0;i<nPkNum;i++)

{

string sCurBody = pkMsg.m_vBody.at(i); //要发送的Body,以字符窜显示

long nSec = SequenceID();

string sFeeType,sFeeCode,sSrvType;

sFeeType = pkMsg.sFeeType;

sFeeCode = pkMsg.sFeeCode;

sSrvType = pkMsg.sServiceType;

if(nPkNum>1) { //发送的肯定是铃声或图片,这时,只有最后一条是计费的

if(i<(nPkNum-1)) {

sFeeType ="01";

sFeeCode ="0";

if(pkMsg.sArea =="BJ") {sSrvType = "BZ";}

else {sSrvType = "MF";}

}

}

vector<BYTE> vCur;

pkMsg.gtPKBody(i,vCur); //获得当前要发送的内容,可以是二进制

CSmsCmpp smCmpp(m_bAdd86);

smCmpp.EncodeSubmit(nSec,

1,

1,

pkMsg.nMsgMode,

9,

sSrvType,

pkMsg.nFeeUserType,

pkMsg.sFeeAddr,

pkMsg.nMsgFmt,

m_sSPID,

sFeeType,

sFeeCode,

pkMsg.sOrgAddr,

pkMsg.sDestAddr,

vCur);

m_DataSend.Write(smCmpp.GetPackage());

if(pkMsg.nMsgMode==2) {

Monitor(2,pkMsg.sOrgAddr,pkMsg.sDestAddr,pkMsg.nMsgFmt,int(strlen(sCurBody.c_str())),sCurBody);

m_nCount.SmcQueueAdd();

}

else {

Monitor(1,pkMsg.sOrgAddr,pkMsg.sDestAddr,pkMsg.nMsgFmt,int(strlen(sCurBody.c_str())),sCurBody);

m_nCount.MTQueueADD();

}

string sCurLabel=pkMsg.gtLabel(); //获取当前的Label

if(sFeeType=="01") {

sCurLabel.replace(8,1,"1");

sCurLabel.replace(9,4," 0");

if(sSrvType=="MF") {

sCurLabel.replace(13,6,"MF ");

}

else if(sSrvType=="BZ") {

sCurLabel.replace(13,6,"BZ ");

}

}

m_DataList.AddSubmit(nSec,sCurLabel,sCurBody);

}

return true;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航