• 大小: 39KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-12-04
  • 语言: 其他
  • 标签:

资源简介

与移动短信网关连接并发送短信源码,可以借鉴一下,经过测试可以连通短信网关并发送短信

资源截图

代码片段和文件信息

package cn.netjava.cmpp.compent;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cn.netjava.cmpp.msg.MsgCommand;
import cn.netjava.cmpp.msg.MsgDeliver;
import cn.netjava.cmpp.msg.MsgDeliverResp;
import cn.netjava.cmpp.msg.MsgHead;
import cn.netjava.cmpp.msg.MsgLogin;
import cn.netjava.cmpp.msg.MsgLoginResp;
import cn.netjava.cmpp.msg.MsgSubmit;
import cn.netjava.cmpp.msg.MsgSubmitResp;
import cn.netjava.cmpp.util.MsgTools;
import cn.netjava.cmpp.util.SysteLog;
import cn.netjava.cmpp.util.Utils;
/**
 *在接收处理消息时避免线程jing zhing 
 * 接收线程:使用双队列缓冲又不要死锁
 * cmpp协议连结对象:
 * 在独立的的线程上接收消息块的数据并调用打包工具类解析
 * @project:蓝杰中国移动Cmpp短信网关项目开发 Jun 17 2009
 * @author: 蓝杰www.netjava.cn
 */

public class CMPPConntor extends Thread {

private java.net.Socket sc;//网络连结对象
private int sendCount;//一秒内己发送的计数器
//从连结上得到的输入输出流
private java.io.DataInputStream dins;
private java.io.DataOutputStream dous;
   //存放己回过应答的Submit消息
private List submitsResult;
private List deliversResult;

 //接收到,等处理回复的Deliver队列
   private List delivers=new ArrayList();
   

   //己发送,等待应答的Submit队列
   private Map submitList1=new HashMap();
   

   private boolean isRunning=true;//运行标志

 /**
  * 创建一个cmpp连结对象
  * @param sc:tcp/ip连结
  * @param submits:保存接收到的Submit消息对象
  * @throws Exception
  */
   public CMPPConntor(java.net.Socket scList submitsResultList deliversResult)throws Exception{
   try{
   this.submitsResult=submitsResult;
   this.deliversResult=deliversResult;
   this.sc=sc;
   sc.setReceiveBufferSize(2048);//设定Socket缓冲区大小
//    sc.setSoTimeout(1000);//超时为1秒  //如果超时到了会返回什么呢??
   dins=new java.io.DataInputStream(sc.getInputStream());
   dous=new java.io.DataOutputStream(sc.getOutputStream());
   }catch(Exception ef){
   ef.printStackTrace();
   }
   }
   
   /**
    * 本连结对象上一秒己发送消息的个数
    * @return
    */
   public int getSendCount(){
return sendCount;
}
   
   
   
   
    
  /**
   * 在本连结上发送己打包后的消息的字节
   * @param data:要发送消息的字节
   */
   public boolean sendMsg(byte[] data) {
   try{
   Utils.debugData(“SP端发出的原始数据>>>:“ data);
sendCount++;
   //可以将多条消息打到一个包中
   dous.write(data);
   dous.flush();
   return true;
   }catch(Exception ef){
   ef.printStackTrace();
   }
   return false;
   }
   
 
   /**
    * 本连结由SP端调用以向ISMG发送登陆请求
    * @param spid :sp企业ID
    * @param pwd: SP密码
    * @return :登陆请求的应答结果
    * @throws Exception
    */
   public int login(String spidString pwd)throws Exception{
   //构造登陆消息对象
   MsgLogin ml=new MsgLogin();
   ml.setTotal_Length(12+6+16+1+4);
   ml.setCommand_Id(MsgCommand.CMPP_CONNECT);
   ml.setSequence_Id(Utils.getSeq());
   
   ml.setSource_Addr(spid);
   byte[] md5=Utils.getLoginMd5(spid pwd);
   ml.setAuthenticatorSource(md5);
   ml.setVersion((byte)14);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2009-06-18 13:49  MobileSP\.classpath

     文件        384  2009-06-18 13:49  MobileSP\.project

     文件       1293  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\compent\CMPPConntor$1.class

     文件       6664  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\compent\CMPPConntor.class

     文件       3700  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\compent\SPServer.class

     文件        536  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgCommand.class

     文件       4972  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgDeliver.class

     文件       1251  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgDeliverResp.class

     文件       1427  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgHead.class

     文件       1867  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgLogin.class

     文件       1447  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgLoginResp.class

     文件       6289  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgSubmit.class

     文件       1250  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\msg\MsgSubmitResp.class

     文件       7874  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\util\MsgTools.class

     文件       1056  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\util\SysteLog.class

     文件       3613  2011-10-21 09:54  MobileSP\bin\cn\netjava\cmpp\util\Utils.class

     文件       2352  2011-10-21 09:54  MobileSP\bin\main\MainSP.class

     文件       7151  2011-10-19 11:16  MobileSP\src\cn\netjava\cmpp\compent\CMPPConntor.java

     文件       2959  2009-06-21 19:33  MobileSP\src\cn\netjava\cmpp\compent\SPServer.java

     文件        914  2009-06-18 10:20  MobileSP\src\cn\netjava\cmpp\msg\MsgCommand.java

     文件       4263  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgDeliver.java

     文件        797  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgDeliverResp.java

     文件       1022  2009-06-21 19:57  MobileSP\src\cn\netjava\cmpp\msg\MsgHead.java

     文件       1339  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgLogin.java

     文件       1024  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgLoginResp.java

     文件       5766  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgSubmit.java

     文件        784  2009-06-21 20:03  MobileSP\src\cn\netjava\cmpp\msg\MsgSubmitResp.java

     文件      10321  2009-06-21 19:32  MobileSP\src\cn\netjava\cmpp\util\MsgTools.java

     文件        628  2009-06-18 11:48  MobileSP\src\cn\netjava\cmpp\util\SysteLog.java

     文件       3117  2009-06-21 19:30  MobileSP\src\cn\netjava\cmpp\util\Utils.java

............此处省略22个文件信息

评论

共有 条评论

相关资源