龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

东软SMIAS短信接入Java开发

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
package org.crabo.blog;import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.commerceware.cmpp.*;public class SMSAPI { static Log log; static cmppe_result result; static CMPP cmpp; static conn_desc

package org.crabo.blog;import org.apache.commons.logging.Log;

  import org.apache.commons.logging.LogFactory;

  import com.commerceware.cmpp.*;public class SMSAPI {

   static Log log;

   static cmppe_result result;

   static CMPP cmpp;

   static conn_desc connDesc; public static void main(String[] args) {

   String loginID = "*****";

   String userID = "*****\0";

   String passWord = "*****";

   String icpID = "*****\0";

   String dst = "*****";

   String mess = "*****";

   String svcType = "*****\0";

   String ip = "*****";

   int port = 7890;

  

   ////////////////////////////////////////////////////////

   log = LogFactory.getLog(SMSAPI.class);

   result = null;

   cmpp = new CMPP();

   connDesc = new conn_desc();

   ////////////////////////////////////////////////////////

   //截取多个联系人

   String[] dstArray = dst.split(";");

   //计算消息截取段数 :56/70 = 0 => messPart=messPart=1

   int messLen = mess.length();

   int messPart = messLen/70 +1;

   String[] messArray = new String[messPart];

   for(int i=0;i

   {

   messArray[i] = mess.substring(70*i,(70*(i+1)

   }

   ////////////////////////////////////////////////////////

   log.info("开始运行... ");

   try{

   cmpp.cmpp_connect_to_ismg(ip, port, connDesc);

   log.info("连接完毕!");

   cmpp.cmpp_login(connDesc, loginID, password, (byte)2, 0x12, (int)System.currentTimeMillis());

  

   result = cmpp.readResPack(connDesc);

   if (result.stat != CMPP.CMPPE_RSP_SUCCESS)

   throw new Exception("状态错误,stat "+ result.stat);

   else

   log.info("登录成功! ");

   }catch(Exception e){

   log.error("登录失败 " + e);

   System.exit(0);

   }

   ////////////////////////////////////////////////////////

   log.info("开始发送... ");

   try{

   cmppe_submit submitStruct = new cmppe_submit();

   submitStruct.set_svctype(svcType.getBytes());

   submitStruct.set_srcaddr(userID.getBytes());

   submitStruct.set_ducount((byte)1);

   submitStruct.set_msgmode((byte)1);

   submitStruct.set_icpid(icpID.getBytes());

   //submitStruct.set_feetype((byte)1);

   //submitStruct.set_infofee(300);

   byte[][] dstByte= {{0,0},{0,0}};

   byte[] message;

   for(int i=0;i

   {

   dstArray[i] += "\0"; //每个号码必须以byte 0结尾

   dstByte[0] = dstArray[i].getBytes();

   submitStruct.set_dstaddr(dstByte);

   for(int j=0;j

   {

   message = messArray[j].getBytes();

   submitStruct.set_msg((byte)15, message.length, message);

   cmpp.cmpp_submit(connDesc, submitStruct);

   ReadResponse();//Submit

   ReadResponse();//Deliver

   }

   }

   }catch(Exception e){

   log.error("发送异常 "+ e);

   System.exit(1);

   }

   ////////////////////////////////////////////////////////

   log.info("登出 ");

   try{

   cmpp.cmpp_logout(connDesc);

   }catch(Exception e)

   {

   log.error("登出异常 "+ e);

   }

   }

  

private static void ReadResponse()

   {

   try{

   result= cmpp.readResPack(connDesc);

   switch(result.pack_id){

   case CMPP.CMPPE_NACK_RESP:

   log.info("Get Nack Pack");

   break;

   case CMPP.CMPPE_SUBMIT_RESP:

   if(result.stat==0)

   log.info("Get Sumit Resp. stat = " + result.stat);

   else

   log.error("Get Sumit Resp. stat = " + result.stat);

   break;

   case CMPP.CMPPE_DELIVER:

   cmppe_deliver_result deliverResult = (cmppe_deliver_result)result;

   log.info("Get Deliver. stat = " + deliverResult.stat);

   if(deliverResult.stat != 0)

   {

   log.info("Deliver Status Rpt " + deliverResult.status_rpt);

   log.info("Deliver Src " + new String(deliverResult.src_addr));

   log.info("Deliver Dst " + new String(deliverResult.dst_addr));

   //log.info("Deliver Message "+ new String(deliverResult.short_msg,"GB2312"));

   }

   cmpp.cmpp_send_deliver_resp(connDesc, deliverResult.seq, deliverResult.stat);

   break;

   default:

   break;

   }

   }catch(Exception e){

   log.error("ReadResponse异常 " + e);

   }

   }}

  

  

精彩图集

赞助商链接