<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/base.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/885410/raw.css"><script src="https://csdnimg.cn/release/download_crawler_static/js/compatibility.min.js"></script><script src="https://csdnimg.cn/release/download_crawler_static/js/pdf2htmlEX.min.js"></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/885410/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">第一章 概述</div><div class="t m0 x2 h4 y3 ff2 fs1 fc0 sc0 ls0 ws0">1 <span class="ff1 sc1">产品概述</span></div><div class="t m0 x3 h5 y4 ff1 fs2 fc0 sc0 ls0 ws0">目前我们提供的<span class="ff3">JAVA</span>版本的<span class="ff3">SMProxy</span>是在原有的<span class="ff3 fs1">UNIX<span class="ff1">平台上的短消息代理</span></span></div><div class="t m0 x3 h4 y5 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">SM PROXY)</span>演变而来,<span class="ff3">JAVA</span>版本的短消息代理可以同时满足<span class="ff3">Unix</span>和<span class="ff3">WINDOW NT</span></div><div class="t m0 x3 h4 y6 ff1 fs1 fc0 sc0 ls0 ws0">平台的使用。<span class="ff3"> SMProxy</span>与<span class="ff3">ISMG</span>建立<span class="ff3">TCP</span>连接进行通信,并负责短消息发送和接收、维</div><div class="t m0 x3 h4 y7 ff1 fs1 fc0 sc0 ls0 ws0">护与<span class="ff3">ISMG</span>的握手、断连重连等;<span class="ff3">SMProxy</span>提供客户<span class="ff3">API</span>接口函数,包括登录<span class="ff3">PROXY</span>、</div><div class="t m0 x3 h4 y8 ff1 fs1 fc0 sc0 ls0 ws0">退出<span class="ff3">PROXY</span>、发送短消息、接受短消息、接受响应信息、查询短消息信息、取消短消</div><div class="t m0 x3 h4 y9 ff1 fs1 fc0 sc0 ls0 ws0">息等。<span class="ff3">SMProxy</span>支持多线程并发使用发送短消息,<span class="ff3">SMProxy</span>和<span class="ff3">ISMG</span>之间使用的通信协</div><div class="t m0 x3 h4 ya ff1 fs1 fc0 sc0 ls0 ws0">议是<span class="ff3">CMPP</span>协议。</div><div class="t m0 x2 h4 yb ff2 fs1 fc0 sc0 ls0 ws0">2 <span class="ff1 sc1">组网结构</span></div><div class="t m0 x3 h4 yc ff3 fs1 fc0 sc0 ls0 ws0">SMProxy<span class="ff1">就是运行在</span>ICP<span class="ff1">的</span>WWW Server<span class="ff1">或者</span>Email Server<span class="ff1">上,负责和</span>ISMG<span class="ff1">进行</span>CMPP<span class="ff1">协</span></div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div></body></html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/885410/bg2.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x3 h4 yd ff1 fs1 fc0 sc0 ls0 ws0">议的通讯,要求<span class="ff3">SP</span>的功能实体向<span class="ff3">ISMG</span>发<span class="ff3">CMPP_SUBMIT</span>消息,由<span class="ff3">ISMG</span>将消息转发到</div><div class="t m0 x3 h4 ye ff1 fs1 fc0 sc0 ls0 ws0">某<span class="ff3">SMC</span>上。同时,<span class="ff3">SMC</span>也可向<span class="ff3">ISMG</span>发送短消息,由<span class="ff3">ISMG</span>发送给相应的<span class="ff3">SP</span>。</div><div class="t m0 x2 h4 yf ff2 fs1 fc0 sc0 ls0 ws0">3 SMProxy<span class="ff1 sc1">的结构</span></div><div class="t m0 x3 h4 y10 ff1 fs1 fc0 sc0 ls0 ws0">客户<span class="_ _0"></span>程序<span class="_ _0"></span>调用<span class="_ _0"></span>到<span class="_ _0"></span><span class="ff3">SM<span class="_ _0"></span> PORXY<span class="_ _0"></span></span>提供<span class="_ _0"></span>的接<span class="_ _0"></span>口函<span class="_ _0"></span>数实<span class="_ _0"></span>现收<span class="_ _0"></span>发短<span class="_ _0"></span>消息<span class="_ _0"></span>,<span class="_ _1"></span><span class="ff3">SM PROXY<span class="_ _0"></span></span>实现<span class="_ _0"></span>把客<span class="_ _0"></span>户</div><div class="t m0 x3 h4 y11 ff1 fs1 fc0 sc0 ls0 ws0">程序所发出的消息按<span class="ff3">CMPP</span>协议进行编码后发给数据增值业务中心<span class="_ _0"></span><span class="ff3">(infoX)</span>,由数据增值</div><div class="t m0 x3 h4 y12 ff1 fs1 fc0 sc0 ls0 ws0">业务<span class="_ _0"></span>中心<span class="_ _0"></span><span class="ff3">(infoX)<span class="_ _0"></span></span>发送<span class="_ _0"></span>给<span class="ff3">SMC<span class="_ _0"></span></span>,并<span class="_ _0"></span>通过<span class="_ _0"></span>数据<span class="_ _0"></span>增值<span class="_ _0"></span>业务<span class="_ _0"></span>中心<span class="_ _1"></span><span class="ff3">(infoX)</span>接收<span class="_ _0"></span><span class="ff3">SMC</span>所<span class="_ _0"></span>响应<span class="_ _0"></span>的消<span class="_ _0"></span>息</div><div class="t m0 x3 h4 y13 ff1 fs1 fc0 sc0 ls0 ws0">与主动下发的消息并进行解码后,通知客户程序接收<span class="ff3">SMC</span>主动下发的短消息。</div><div class="t m0 x4 h3 y14 ff1 fs0 fc0 sc0 ls0 ws0">第二章 <span class="ff4">CMPP</span>协议的封装</div><div class="t m0 x3 h4 y15 ff3 fs1 fc0 sc0 ls0 ws0">CMPP<span class="ff1">协议封装在</span>com.huawei.insa2.comm.cmpp.message<span class="ff1">包中,主要消息如下</span></div><div class="t m0 x3 h4 y16 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">1</span>)<span class="ff3">CMPPActiveMessage </span>心跳消息,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3">CMPP_Active_Test</span>消息,</div><div class="t m0 x3 h4 y17 ff1 fs1 fc0 sc0 ls0 ws0">是<span class="ff3">SMProxy</span>与<span class="ff3">ISMG</span>的心跳消息。</div><div class="t m0 x3 h4 y18 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">2</span>)<span class="ff3">CMPPActiveRepMessage </span>心跳响应消息,对应<span class="ff3">CMPP1.2.1</span>文档中的</div><div class="t m0 x3 h4 y19 ff3 fs1 fc0 sc0 ls0 ws0">CMPP_Active_Test_REP<span class="ff1">,是</span>SMProxy<span class="ff1">发送心跳消息后收到的响应消息</span></div><div class="t m0 x3 h4 y1a ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">3</span>)<span class="ff3">CMPPCancelMessage </span>删除短信消息,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3">CMPP_Cancel</span>的消</div><div class="t m0 x3 h4 y1b ff1 fs1 fc0 sc0 ls0 ws0">息,是<span class="ff3">SMProxy</span>向<span class="ff3">ISMG</span>发送的删除短消息。</div><div class="t m0 x3 h4 y1c ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">4</span>)<span class="ff3">CMPPCancelRepMessage </span>删除短信响应消息,对应<span class="ff3">CMPP1.2.1</span>文档中的</div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/885410/bg3.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x3 h4 yd ff3 fs1 fc0 sc0 ls0 ws0">CMPP_Cancel_REP<span class="ff1">的消息,是</span>SMProxy<span class="ff1">发送删除短信后收到的响应消息。</span></div><div class="t m0 x3 h4 ye ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">5</span>)<span class="ff3">CMPPConnectMessage </span>请求连接消息,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3">CMPP_Connect</span>的</div><div class="t m0 x3 h4 y1d ff1 fs1 fc0 sc0 ls0 ws0">消息,是<span class="ff3">SMProxy</span>向<span class="ff3">ISMG</span>发送的建立逻辑请求连接消息。</div><div class="t m0 x3 h4 y1e ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">6</span>)<span class="ff3">CMPPConnectRepMessage </span>请求连接应答消息,对应<span class="ff3">CMPP1.2.1</span>文档中的</div><div class="t m0 x3 h4 y1f ff3 fs1 fc0 sc0 ls0 ws0">CMPP_Connect_REP<span class="ff1">的消息,是</span>SMProxy<span class="ff1">向</span>ISMG<span class="ff1">发送的建立逻辑请求连接后收到的响</span></div><div class="t m0 x3 h4 y20 ff1 fs1 fc0 sc0 ls0 ws0">应消息。</div><div class="t m0 x3 h4 y21 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">7</span>)<span class="ff3">CMPPDeliverMessage ISMG</span>下发短信,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3"> <span class="ff4">CMPP_Deliver</span></span></div><div class="t m0 x3 h4 y22 ff1 fs1 fc0 sc0 ls0 ws0">消息,是<span class="ff3">ISMG</span>下发给<span class="ff3">SMProxy</span>的短消息或者状态报告消息。</div><div class="t m0 x3 h4 y23 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">8</span>)<span class="ff3">CMPPDeliverRepMessage </span>下发短信响应,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3"> </span></div><div class="t m0 x3 h4 y24 ff4 fs1 fc0 sc0 ls0 ws0">CMPP_Deliver<span class="ff3">_REP<span class="ff1">消息,是</span>SMProxy<span class="ff1">收到的下发短信后的响应消息。</span></span></div><div class="t m0 x3 h4 y25 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">9</span>)<span class="ff3">CMPPQueryMessage </span>发送短信状态查询消息,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3"> </span></div><div class="t m0 x3 h4 y26 ff4 fs1 fc0 sc0 ls0 ws0">CMPP_Query<span class="ff1">消息,是<span class="ff3">SMProxy</span>查询<span class="ff3">Time</span>属性指定的日期的统计信息。</span></div><div class="t m0 x3 h4 y27 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">10</span>)<span class="ff3">CMPPQueryRepMessage </span>发送短信状态查询的响应消息,对应<span class="ff3">CMPP1.2.1</span>文档中</div><div class="t m0 x3 h4 y28 ff1 fs1 fc0 sc0 ls0 ws0">的<span class="ff3"> <span class="ff4">CMPP_Query</span>_REP</span>消息。</div><div class="t m0 x3 h4 y29 ff3 fs2 fc0 sc0 ls0 ws0">1<span class="ff1 fs1">(<span class="ff3">11</span>)<span class="ff3">CMPPSubmitMessage </span>发送短信消息,对应<span class="ff3">CMPP1.2.1</span>文档中的<span class="ff3"> <span class="ff4">CMPP_</span>Submit</span></span></div><div class="t m0 x3 h4 y2a ff1 fs1 fc0 sc0 ls0 ws0">消息,是<span class="ff3">SMProxy</span>发送短讯的消息。</div><div class="t m0 x3 h4 y2b ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">12</span>)<span class="ff3">CMPPSubmitRepMessage </span>下发短信的响应,对应<span class="ff3">CMPP1.2.1 </span>文档中的<span class="ff3"> </span></div><div class="t m0 x3 h4 y2c ff4 fs1 fc0 sc0 ls0 ws0">CMPP_<span class="ff3">Submit_REP<span class="ff1">消息,是</span>SMProxy<span class="ff1">发送短讯的响应消息。</span></span></div><div class="t m0 x3 h4 y2d ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">13</span>)<span class="ff3">CMPPTerminateMessage </span>终止连接消息,对应<span class="ff3">CMPP1.2.1 </span>文档中的<span class="ff3"> </span></div><div class="t m0 x3 h4 y2e ff4 fs1 fc0 sc0 ls0 ws0">CMPP_<span class="ff3">Terminate<span class="ff1">消息,是</span>ISMG<span class="ff1">和</span>SMProxy<span class="ff1">终止逻辑连接的消息。</span></span></div><div class="t m0 x3 h4 y2f ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">14</span>)<span class="ff3">CMPPTerminateRepMessage </span>终止连接的响应消息,对应<span class="ff3">CMPP1.2.1 </span>文档中的<span class="ff3"> </span></div><div class="t m0 x3 h4 y30 ff4 fs1 fc0 sc0 ls0 ws0">CMPP_<span class="ff3">Terminate_REP<span class="ff1">消息,是</span>ISMG<span class="ff1">或</span>SMProxy<span class="ff1">收到终止连接后发送的响应消息。</span></span></div><div class="t m0 x3 h4 y31 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">其中的心跳消息(</span>1<span class="ff1">,</span>2<span class="ff1">)、建立逻辑连接的消息(</span>5<span class="ff1">,</span>6<span class="ff1">)和终止逻辑连接消息</span></div><div class="t m0 x3 h4 y32 ff1 fs1 fc0 sc0 ls0 ws0">(<span class="ff3">13</span>,<span class="ff3">14</span>)只是<span class="ff3">SMProxy</span>系统内部使用消息,提供给外部的接口中不涉及这六条消息。</div><div class="t m0 x5 h3 y33 ff1 fs0 fc0 sc0 ls0 ws0">第三章 <span class="ff4">SMProxy</span>使用说明</div><div class="t m0 x2 h5 y34 ff2 fs2 fc0 sc0 ls0 ws0">1 SMProxy<span class="ff1 sc1">提供的接口方法描述</span></div><div class="t m0 x3 h6 y35 ff5 fs3 fc0 sc0 ls0 ws0">1<span class="ff1 sc1">、</span><span class="ff3 fs1">send</span></div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/885410/bg4.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x3 h4 yd ff1 fs1 fc0 sc0 ls0 ws0">【函数功能】<span class="ff3"> </span></div><div class="t m0 x6 h4 ye ff1 fs1 fc0 sc0 ls0 ws0">向<span class="ff3">ISMG</span>发送<span class="ff3">CMPP</span>消息,阻塞直到收到响应或超时。</div><div class="t m0 x3 h4 y1d ff1 fs1 fc0 sc0 ls0 ws0">【函数原型】</div><div class="t m0 x7 h4 y1e ff3 fs1 fc0 sc0 ls0 ws0">CMPPMessage send(CMPPMessage message)<span class="ff1">;</span></div><div class="t m0 x3 h4 y1f ff1 fs1 fc0 sc0 ls0 ws0">【参数说明】</div><div class="t m0 x7 h4 y20 ff3 fs1 fc0 sc0 ls0 ws0">[IN] message - <span class="ff1">发送的</span>CMPP<span class="ff1">消息,包括</span></div><div class="t m0 x3 h4 y21 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">(</span>1<span class="ff1">)<span class="ff4">CMPPSubmitMessage<span class="_ _2"> </span></span>提交短信</span></div><div class="t m0 x3 h4 y22 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">(</span>2<span class="ff1">)<span class="ff4">CMPPQueryMessage<span class="_ _3"> </span></span>发送短信状态查询</span></div><div class="t m0 x3 h4 y23 ff4 fs1 fc0 sc0 ls0 ws0"> <span class="_ _0"></span> <span class="ff1">(</span>3<span class="ff1">)</span>CMPPCancelMessage<span class="_ _4"> </span><span class="ff1">删除短信</span></div><div class="t m0 x3 h4 y24 ff1 fs1 fc0 sc0 ls0 ws0">【处理】</div><div class="t m0 x7 h4 y25 ff1 fs1 fc0 sc0 ls0 ws0">调用这个接口方法,向<span class="ff3">ISMG</span>发送<span class="ff3">Submit/Query/Cancel</span>等命令消息。</div><div class="t m0 x3 h4 y26 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">如果发送消息超时或通信异常则抛出异常,需要调用者捕获处理。</span></div><div class="t m0 x3 h4 y27 ff1 fs1 fc0 sc0 ls0 ws0">【返回值】</div><div class="t m0 x7 h4 y28 ff1 fs1 fc0 sc0 ls0 ws0">发送<span class="ff3">CMPPSubmitMessage</span>,返回<span class="ff3">CMPPSubmitRepMessage</span>;</div><div class="t m0 x7 h4 y36 ff1 fs1 fc0 sc0 ls0 ws0">发送<span class="ff3">CMPPCancelMessage</span>,返回<span class="ff3">CMPPCancelRepMessage</span>;</div><div class="t m0 x7 h4 y37 ff1 fs1 fc0 sc0 ls0 ws0">发送<span class="ff3">CMPPQueryMessage</span>,返回<span class="ff3">CMPPQueryRepMessage</span>;</div><div class="t m0 x3 h7 y38 ff3 fs2 fc0 sc0 ls0 ws0">2 close</div><div class="t m0 x3 h4 y39 ff1 fs1 fc0 sc0 ls0 ws0">【函数功能】<span class="ff3"> </span></div><div class="t m0 x6 h4 y3a ff1 fs1 fc0 sc0 ls0 ws0">向<span class="ff3">ISMG</span>发送终止连接<span class="ff3">CMPP</span>消息,调用之后连接将永久不可用。</div><div class="t m0 x3 h4 y3b ff1 fs1 fc0 sc0 ls0 ws0">【函数原型】</div><div class="t m0 x7 h4 y3c ff3 fs1 fc0 sc0 ls0 ws0">Void close()<span class="ff1">;</span></div><div class="t m0 x3 h4 y3d ff1 fs1 fc0 sc0 ls0 ws0">【参数说明】<span class="ff3"> </span>无</div><div class="t m0 x3 h4 y3e ff1 fs1 fc0 sc0 ls0 ws0">【处理】</div><div class="t m0 x7 h4 y3f ff1 fs1 fc0 sc0 ls0 ws0">调用这个接口方法,<span class="ff3">SMProxy</span>向<span class="ff3">ISMG</span>发送<span class="ff3">CMPPTerminateMessage</span>消息</div><div class="t m0 x3 h4 y40 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">如果发送消息超时或通信异常则抛出异常,需要调用者捕获处理。</span></div><div class="t m0 x3 h4 y41 ff1 fs1 fc0 sc0 ls0 ws0">【返回值】<span class="ff3"> </span>无</div><div class="t m0 x3 h7 y42 ff3 fs2 fc0 sc0 ls0 ws0">3 getConnState</div><div class="t m0 x3 h4 y43 ff1 fs1 fc0 sc0 ls0 ws0">【函数功能】<span class="ff3"> </span></div><div class="t m0 x6 h4 y44 ff1 fs1 fc0 sc0 ls0 ws0">获取通讯连接的状态方法。</div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/885410/bg5.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x3 h4 yd ff1 fs1 fc0 sc0 ls0 ws0">【函数原型】</div><div class="t m0 x3 h4 y45 ff3 fs2 fc0 sc0 ls0 ws0">1<span class="_ _5"> </span><span class="fs1">String getConnState()<span class="ff1">;</span></span></div><div class="t m0 x3 h4 y46 ff1 fs1 fc0 sc0 ls0 ws0">【参数说明】<span class="ff3"> </span>无</div><div class="t m0 x3 h4 y47 ff1 fs1 fc0 sc0 ls0 ws0">【处理】</div><div class="t m0 x7 h4 y48 ff1 fs1 fc0 sc0 ls0 ws0">调用这个接口方法,获取<span class="ff3">TCP</span>连接状态的描述。</div><div class="t m0 x3 h4 y49 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff1">如果发送消息超时或通信异常则抛出异常,需要调用者捕获处理。</span></div><div class="t m0 x3 h4 y4a ff1 fs1 fc0 sc0 ls0 ws0">【返回值】<span class="ff3"> </span></div><div class="t m0 x3 h4 y4b ff3 fs2 fc0 sc0 ls0 ws0"> <span class="_ _5"> </span><span class="ff1 fs1">当前错误描述,若连接正常则返回<span class="ff3">null</span>。</span></div><div class="t m0 x2 h5 y4c ff2 fs2 fc0 sc0 ls0 ws0">2 <span class="ff1 sc1">封装接口方法的</span>SMProxy<span class="ff1 sc1">的抽象类</span></div><div class="t m0 x3 h4 y4d ff3 fs1 fc0 sc0 ls0 ws0">SMProxy<span class="ff1">在</span>com.huawei.SMProxy<span class="ff1">的包中,封装了</span>Send<span class="ff1">、</span>close<span class="ff1">、</span>getConnState<span class="ff1">方法。</span></div><div class="t m0 x3 h4 y4e ff3 fs1 fc0 sc0 ls0 ws0">SMProxy<span class="ff1">是一个抽象类,需要被继承使用。</span></div><div class="t m0 x3 h4 y4f ff3 fs1 fc0 sc0 ls0 ws0">SMProxy<span class="ff1">抽象类的框架如下:</span></div><div class="t m0 x3 h8 y50 ff3 fs1 fc0 sc0 ls0 ws0">public class SMProxy </div><div class="t m0 x3 h8 y51 ff3 fs1 fc0 sc0 ls0 ws0">{</div><div class="t m0 x3 h8 y52 ff3 fs1 fc0 sc0 ls0 ws0"> public SMProxy(Args args)</div><div class="t m0 x3 h8 y53 ff3 fs1 fc0 sc0 ls0 ws0"> {</div><div class="t m0 x3 h4 y54 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="fc1"> //<span class="ff1">完成初始化和向</span>ISMG<span class="ff1">登录等工作</span></span></div><div class="t m0 x3 h8 y55 ff3 fs1 fc0 sc0 ls0 ws0"> }</div><div class="t m0 x3 h8 y56 ff3 fs1 fc0 sc0 ls0 ws0"> public SMProxy(Map args)</div><div class="t m0 x3 h8 y57 ff3 fs1 fc0 sc0 ls0 ws0"> {</div><div class="t m0 x3 h4 y58 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="fc1">//<span class="ff1">完成初始化和向</span>ISMG<span class="ff1">登录等工作</span></span></div><div class="t m0 x3 h8 y59 ff3 fs1 fc0 sc0 ls0 ws0"> }</div><div class="t m0 x3 h8 y5a ff3 fs1 fc0 sc0 ls0 ws0"> /**</div><div class="t m0 x3 h4 y5b ff3 fs1 fc0 sc0 ls0 ws0"> * <span class="ff1">发送消息,阻塞直到收到响应或超时。</span></div><div class="t m0 x3 h4 y5c ff3 fs1 fc0 sc0 ls0 ws0"> * <span class="ff1">返回为收到的消息</span></div><div class="t m0 x3 h4 y5d ff3 fs1 fc0 sc0 ls0 ws0"> * @exception PException <span class="ff1">超时或通信异常。</span></div><div class="t m0 x3 h8 y5e ff3 fs1 fc0 sc0 ls0 ws0"> */</div><div class="t m0 x3 h8 y5f ff3 fs1 fc0 sc0 ls0 ws0"> public CMPPMessage send(CMPPMessage message) </div><div class="t m0 x3 h8 y60 ff3 fs1 fc0 sc0 ls0 ws0"> {</div><div class="t m0 x3 h4 y61 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="fc1">//<span class="ff1">发送消息</span> </span></div><div class="t m0 x3 h8 y62 ff3 fs1 fc0 sc0 ls0 ws0"> }</div><div class="t m0 x3 h8 y63 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x3 h8 y64 ff3 fs1 fc0 sc0 ls0 ws0"> /**</div><div class="t m0 x3 h4 y65 ff3 fs1 fc0 sc0 ls0 ws0"> * <span class="ff1">连接终止的处理,由</span>API<span class="ff1">使用者实现</span></div><div class="t m0 x3 h4 y66 ff3 fs1 fc0 sc0 ls0 ws0"> * SMC<span class="ff1">连接终止后,需要执行动作的接口</span></div><div class="t m0 x3 h8 y67 ff3 fs1 fc0 sc0 ls0 ws0"> */</div><div class="t m0 x3 h8 y68 ff3 fs1 fc0 sc0 ls0 ws0"> public void onTerminate()</div><div class="t m0 x3 h8 y69 ff3 fs1 fc0 sc0 ls0 ws0"> {</div><div class="t m0 x3 h8 y6a ff3 fs1 fc0 sc0 ls0 ws0"> }</div></div></div><div class="pi" data-data='{"ctm":[1.568627,0.000000,0.000000,1.568627,0.000000,0.000000]}'></div></div>