-
大小: 39KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-12-04
- 語言: 其他
- 標(biāo)簽:
資源簡介
與移動短信網(wǎng)關(guān)連接并發(fā)送短信源碼,可以借鑒一下,經(jīng)過測試可以連通短信網(wǎng)關(guān)并發(fā)送短信

代碼片段和文件信息
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協(xié)議連結(jié)對象:
?*?在獨立的的線程上接收消息塊的數(shù)據(jù)并調(diào)用打包工具類解析
?*?@project:藍(lán)杰中國移動Cmpp短信網(wǎng)關(guān)項目開發(fā)?Jun?17?2009
?*?@author:?藍(lán)杰www.netjava.cn
?*/
public?class?CMPPConntor?extends?Thread?{
private?java.net.Socket?sc;//網(wǎng)絡(luò)連結(jié)對象
private?int?sendCount;//一秒內(nèi)己發(fā)送的計數(shù)器
//從連結(jié)上得到的輸入輸出流
private?java.io.DataInputStream?dins;
private?java.io.DataOutputStream?dous;
???//存放己回過應(yīng)答的Submit消息
private?List?submitsResult;
private?List?deliversResult;
?//接收到,等處理回復(fù)的Deliver隊列
???private?List?delivers=new?ArrayList();
???
???//己發(fā)送,等待應(yīng)答的Submit隊列
???private?Map?submitList1=new?HashMap();
???
???private?boolean?isRunning=true;//運行標(biāo)志
?/**
??*?創(chuàng)建一個cmpp連結(jié)對象
??*?@param?sc:tcp/ip連結(jié)
??*?@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);//設(shè)定Socket緩沖區(qū)大小
// ???sc.setSoTimeout(1000);//超時為1秒??//如果超時到了會返回什么呢??
???dins=new?java.io.DataInputStream(sc.getInputStream());
???dous=new?java.io.DataOutputStream(sc.getOutputStream());
???}catch(Exception?ef){
???ef.printStackTrace();
???}
???}
???
???/**
????*?本連結(jié)對象上一秒己發(fā)送消息的個數(shù)
????*?@return
????*/
???public?int?getSendCount(){
return?sendCount;
}
???
???
???
???
????
??/**
???*?在本連結(jié)上發(fā)送己打包后的消息的字節(jié)
???*?@param?data:要發(fā)送消息的字節(jié)
???*/
???public?boolean?sendMsg(byte[]?data)?{
???try{
???Utils.debugData(“SP端發(fā)出的原始數(shù)據(jù)>>>:“?data);
sendCount++;
???//可以將多條消息打到一個包中
???dous.write(data);
???dous.flush();
???return?true;
???}catch(Exception?ef){
???ef.printStackTrace();
???}
???return?false;
???}
???
?
???/**
????*?本連結(jié)由SP端調(diào)用以向ISMG發(fā)送登陸請求
????*?@param?spid?:sp企業(yè)ID
????*?@param?pwd:?SP密碼
????*?@return?:登陸請求的應(yīng)答結(jié)果
????*?@throws?Exception
????*/
???public?int?login(String?spidString?pwd)throws?Exception{
???//構(gòu)造登陸消息對象
???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個文件信息
評論
共有 條評論