联通增值业务短信通信程序

       该程序主要是第三方短信服务商与联通网关的通信程序,其短信收发包主要应用了IO开源框架netty,该程序主要将短信内容组装成联通通信协议中规定的格式,然后发送给联通网关,然后在通过联通发送给用户以提供短信业务。先分析收发通信模块

一,基本流程

  1.发送客户端首先会链接并发送登录协议包登录联通网关

   

       client.connectAndLogin(); 方法主要工作便是链接并登录,链接和登录会反复尝试,直到链接成功并登录

       

       

          链接方法

      

             登录方法,发送登录包CMPP30Connect登录

             

            提交包 submitPacket 将包体中的byte 流写入session

 

   二.组包过程

            每类消息实体都继承于一个抽象消息类,这个消息类中主要的两个方法分别是write,read

             

  •  write 在发送出去的消息中,将实体中的成员属性有字符串根据协议组装为byte流,发送类消息包含

                   CMPP30Connect ,CMPP30Deliver,CMPP30Submit

  •    read 在返回的消息中,将接收的byte流解析为消息实体中对应的成员属性,返回消息包含 CMPP30ConnectResp,

                  CMPP30DeliverResp,CMPP30SubmitResp

         消息类结构运用了典型的模板模式,抽象类write,read 定义组包,解析包的固有流程,如下抽象类中的read,write方法

      

       

         其中对包头的处理writeHeader,readHeader,每类消息都是一样的,可以在抽象类中实现,writeHeader,readHeader的实现,

         而writeBody,readBody则在个具体消息子类中根据每类消息的组包协议不同来具体实现

       

   

  在消息子类CMPP30Connect ,CMPP30DeliverResp中writeBody, readBody的实现

   

 

    

  组包的详细细节

     以CMPP30Submit消息体为例详细讲解下组包的详细细节

    

    定义消息体中每个成员属性在消息包中所在空间大小,即所占的字节长度,这是协议中规定死的,

    消息体中的成员属性

   消息体中组包方法的细节说明 writeBody

 

    在这个消息体中 msg_id 没有为空,所以他所占用的空间用0来填充。

 

这几个成员属性是int类型,直接转换为byte填充进buffer缓存区中。

 

 字符串类型的可通过getBytes方法来转换

   

  

 

 

         

----
spring mvc+tomcat源码分析视频(链接复制在浏览器打开)

https://study.163.com/course/courseMain.htm?share=2&shareId=480000001919582&courseId=1209399899&_trace_c_p_k2_=6d81bc445e9c462ab8d6345e40f6b0bf

         

            

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浙江联通短信接口使用说明 一、通过 http://www.sms1688.com/ 申请开户 浙江省内各地还可通过相应的二级域名申请,如 nb.sms1688.com jh.sms1688.com 二、安装数据库服务器 Oracle SQLServer 或 Sybase 已装的可略过本步。 三、生成数据库 通过“数据库生成语句”文件夹里的一条语句来生成你的相应版本的数据库如要使用Access可先生成SQLServer的数据库,然后通过SQLServer的DTS服务导出一个Access的mdb文件,然后将SMSSocket.ini配置成dsn模式,在ODBC中创建相应的DSN(配置见四)。另外本人提供了一个SQLServer2005版的数据库,你可以直接附加到你的SQLServer2005里。 四、配置文件修改,具体内容请打开SMSSocket.ini查看,已做详细备注。 五、测试,请双击 测试.bat进行测试,若测试成功则会显示成功,不成功会显示相应用的错误信息,这是命令行界面的。 六、安装服务,测试成功后可点击 安装服务.bat安装服务。服务以windows服务方式运行,重启后仍会有效。 七、发信,直接在你的应用程序里面向数据库的sms_send表里插入数据,服务程序就会自动发送短信,表内各字段具体含义请参见“浙江联通行业应用短信平台二次开发接口使用手册.doc” 八、若要关闭服务,请执行卸载服务.bat。 九、本程序为绿色版本,放在任何目录里执行都是一样的。 十、本程序可以发短信联通、移动、电信三家的运营商的手机,费率为联通8分一条,其他10分一条,是否可在开通接口时与联通议价暂不知道。 十一、SmsNbClient文件夹里的内容不是接口的一部分,是发短信的客户端软件,当是第一步完成后的测试工具好了。 十二、又臭又长的说明请参见联通官方的“浙江联通行业应用短信平台二次开发接口使用手册.doc” 十三、个人主页www.fatsot.net欢迎交流。 小胖2010-1-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值