資源簡介
與移動短信網關連接并發送短信源碼,可以借鑒一下,經過測試可以連通短信網關并發送短信

代碼片段和文件信息
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個文件信息
- 上一篇:通訊錄管理系統(c 鏈表)
- 下一篇:MODBUS--ASCii實現的主要代碼
評論
共有 條評論