WEB开发网
开发学院软件开发C++ 东软SMIAS短信接入Java开发 阅读

东软SMIAS短信接入Java开发

 2008-03-08 12:56:02 来源:WEB开发网   
核心提示:package org.crabo.blog;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.commerceware.cmpp.*;public class SMSAPI { s
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<messPart;i++)
 {
  messArray[i] = mess.substring(70*i,(70*(i+1)<messLen?70*(i+1):messLen))+"\0";
 }
 //////////////////////////////////////////////////////// 
 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.length;i++) //逐个联系人
  {
  dstArray[i] += "\0"; //每个号码必须以byte 0结尾
  dstByte[0] = dstArray[i].getBytes();
  submitStruct.set_dstaddr(dstByte);
  for(int j=0;j<messArray.length;j++) //逐条消息(70个字分组)
  {
   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);
 }
 }}

Tags:东软 SMIAS 短信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接