中国联通短信网关接入程序源代码(SGIP1.2协议)
2015-12-27 02:42
561 查看
http://sunnylocus.iteye.com/blog/567374#bc2382420
自从我发了博文“中国联通SP业务开发总结”后有很多的朋友问我开发上一些问题,开发接入程序必须有一定的socket编程基础,且必须熟悉sgip1.2协议才可以,我应一位网友的要求将我开发的短信接入程序源代码发布,希望对开发短信业务的朋友提供一些帮助,代码可自由传播。如有疑问请留言,我会尽量解答。
ps:
lib.rar是短信程序所用到的jar包,有很多朋友问我要jar包,现在给补上。
[lib]
+----jdom1.1.jar
+----log4j-1.2.16.jar
+----mail.jar
+----xerces.jar
lib里还少一个jar包,xercesImpl.jar,继续补上。
2011-04-15 新包发布 v1.1
修改内容:
修改com.tdt.unicom.sgip.svr.SPSender类,将计时器Timer改为ScheduledExecutorService,在测试中发现Timer内部异常时,会将错误传染给倒霉的调用者,导致下发线程全部中断。
优化了短信下发的流程。
修复了群发短信时,只有一个手机能收到短信的bug。
以上bug都是根据网友反馈发现的,在这里表示感谢。
2011-12-16 新包发布 v1.2
修改内容:
修改com.tdt.unicom.sgip.svr.SPSender类,上一个版本中,如果联通网关断开连接,SP端再次发送短信时,会出现异常,导致短信无法行,v1.2版本已修复该bug。
感谢网友“白开水”的反馈。
2012-02-08 新包发布 v1.3
修改内容:
将SP的源节点编号,SMG网关的登陆用户名和密码在productionConf.xml配置文件中进行配置,无需再修改源代码的参数。
2013-06-08新包发布 v1.4
修改内容:
根据反馈,在下发线程因异常中断时,后续的短信无法再继续发送,必须重启才能 解决,该版本修复了该bug,当有线程异常退出时,自动生成的新线程替代已异常退出的线程
优化了在高并发环境下发送的策略,如果下发线程全部忙碌,采用谁调用谁发送。
预留相关接口,如果想将收到短信插入数据库,转发其它业务层等请在com.tdt.unicom.sgip.svr.UnicomSPMonitor的transmitDeliverMsg方法实现自己的业务逻辑处理。
/**
* 将收到的短信转发给相应的业务逻辑处理层
* 转发方式Socket、Http、WebService
* @param command
*/
public void transmitDeliverMsg(final SGIPCommand command) { }
特别说明:
有朋友在测试我的短信程序时,会出现Exception in thread "MT-thread-0" java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed
这个异常,这是因为你测试机器的IP地址没有在联通短信平台上备案,联通SMG有一个白名单,只有你的IP地址出现在这个白名单时你才会与SMG网关建立socket连接,否则会被联通的防火墙拦截。这个异常就是因为你的socket连接被对方的防火墙给拦截了。
感谢网友“明晓”协助测试!
=====================================================================
如何打包,并加载第三方类库?
有童鞋下载了源代码,修改代码打好包后不知道如何加载第三方类库,下面是如如何加载第三方类库的方法。
1、在打好包(假设打好的包叫UNICOM.jar)的目录下,新建一个目录SGIP_LIB,将用到的第三方类库拷贝到该目录下
2、在打好包的目录下,新建一个目录SGIP_Config,用winrar压缩软件打开UNICOM.jar包,将所有配置文件拖到SGIP_Config目录下
3、用Winrar压缩软件打开UNICOM.jar包META-INF目录下的MANIFEST.MF文件,加入
Class-Path: ./SGIP_Config/ ./SGIP_LIB/log4j-1.2.16.jar ./SGIP_LIB/jdom1.1.jar ./SGIP_LIB/mail.jar ./SGIP_LIB/xerces.jar ./SGIP_LIB/xercesImpl.jar
4、保存退出,在终端运行Java -jar ./UNICOM.jar即可启动短信平台(注意Class-Path未尾一定要加空格!!!)
UNICOM.rar (3.7 MB)
描述: 过时版本
下载次数: 3802
lib.rar (3 MB)
下载次数: 1863
xercesImpl.jar (1.3 MB)
下载次数: 1492
UNICOM_v1.1.rar (2.8 MB)
描述: 2011-04-15 发布 新版本
下载次数: 954
UNICOM_v1.2.rar (146.1 KB)
描述: 2011-12-16 发布 v1.2
下载次数: 745
UNICOM_v1.3.rar (154.5 KB)
描述: 2012-02-08 发布 v1.3
下载次数: 1131
UNICOM_v1.4.rar (65.9 KB)
下载次数: 786
自从我发了博文“中国联通SP业务开发总结”后有很多的朋友问我开发上一些问题,开发接入程序必须有一定的socket编程基础,且必须熟悉sgip1.2协议才可以,我应一位网友的要求将我开发的短信接入程序源代码发布,希望对开发短信业务的朋友提供一些帮助,代码可自由传播。如有疑问请留言,我会尽量解答。
ps:
lib.rar是短信程序所用到的jar包,有很多朋友问我要jar包,现在给补上。
[lib]
+----jdom1.1.jar
+----log4j-1.2.16.jar
+----mail.jar
+----xerces.jar
lib里还少一个jar包,xercesImpl.jar,继续补上。
2011-04-15 新包发布 v1.1
修改内容:
修改com.tdt.unicom.sgip.svr.SPSender类,将计时器Timer改为ScheduledExecutorService,在测试中发现Timer内部异常时,会将错误传染给倒霉的调用者,导致下发线程全部中断。
优化了短信下发的流程。
修复了群发短信时,只有一个手机能收到短信的bug。
以上bug都是根据网友反馈发现的,在这里表示感谢。
2011-12-16 新包发布 v1.2
修改内容:
修改com.tdt.unicom.sgip.svr.SPSender类,上一个版本中,如果联通网关断开连接,SP端再次发送短信时,会出现异常,导致短信无法行,v1.2版本已修复该bug。
感谢网友“白开水”的反馈。
2012-02-08 新包发布 v1.3
修改内容:
将SP的源节点编号,SMG网关的登陆用户名和密码在productionConf.xml配置文件中进行配置,无需再修改源代码的参数。
2013-06-08新包发布 v1.4
修改内容:
根据反馈,在下发线程因异常中断时,后续的短信无法再继续发送,必须重启才能 解决,该版本修复了该bug,当有线程异常退出时,自动生成的新线程替代已异常退出的线程
优化了在高并发环境下发送的策略,如果下发线程全部忙碌,采用谁调用谁发送。
预留相关接口,如果想将收到短信插入数据库,转发其它业务层等请在com.tdt.unicom.sgip.svr.UnicomSPMonitor的transmitDeliverMsg方法实现自己的业务逻辑处理。
/**
* 将收到的短信转发给相应的业务逻辑处理层
* 转发方式Socket、Http、WebService
* @param command
*/
public void transmitDeliverMsg(final SGIPCommand command) { }
特别说明:
有朋友在测试我的短信程序时,会出现Exception in thread "MT-thread-0" java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed
这个异常,这是因为你测试机器的IP地址没有在联通短信平台上备案,联通SMG有一个白名单,只有你的IP地址出现在这个白名单时你才会与SMG网关建立socket连接,否则会被联通的防火墙拦截。这个异常就是因为你的socket连接被对方的防火墙给拦截了。
感谢网友“明晓”协助测试!
=====================================================================
如何打包,并加载第三方类库?
有童鞋下载了源代码,修改代码打好包后不知道如何加载第三方类库,下面是如如何加载第三方类库的方法。
1、在打好包(假设打好的包叫UNICOM.jar)的目录下,新建一个目录SGIP_LIB,将用到的第三方类库拷贝到该目录下
2、在打好包的目录下,新建一个目录SGIP_Config,用winrar压缩软件打开UNICOM.jar包,将所有配置文件拖到SGIP_Config目录下
3、用Winrar压缩软件打开UNICOM.jar包META-INF目录下的MANIFEST.MF文件,加入
Class-Path: ./SGIP_Config/ ./SGIP_LIB/log4j-1.2.16.jar ./SGIP_LIB/jdom1.1.jar ./SGIP_LIB/mail.jar ./SGIP_LIB/xerces.jar ./SGIP_LIB/xercesImpl.jar
4、保存退出,在终端运行Java -jar ./UNICOM.jar即可启动短信平台(注意Class-Path未尾一定要加空格!!!)
UNICOM.rar (3.7 MB)
描述: 过时版本
下载次数: 3802
lib.rar (3 MB)
下载次数: 1863
xercesImpl.jar (1.3 MB)
下载次数: 1492
UNICOM_v1.1.rar (2.8 MB)
描述: 2011-04-15 发布 新版本
下载次数: 954
UNICOM_v1.2.rar (146.1 KB)
描述: 2011-12-16 发布 v1.2
下载次数: 745
UNICOM_v1.3.rar (154.5 KB)
描述: 2012-02-08 发布 v1.3
下载次数: 1131
UNICOM_v1.4.rar (65.9 KB)
下载次数: 786
相关文章推荐
- 自定义搭建PHP开发环境
- JUnit编写单元测试代码注意点小结
- Eclipse Debug 教程
- C语言中常用计时方法总结
- python成长之路——第一天
- PHP模板smarty简单入门教程
- 初学python1
- python中的subprocess.Popen()使用
- Ubuntu安装php--mongo扩展
- java(一)编程工具的下载与环境变量的配置
- C#委托&Lambda
- C++.OOP
- MYECLIPSE 2014 有用的几个快捷键
- [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- JavaScrip——练习(做悬浮框)
- Java 用Servlet+JDBC 结合Sqlsever 实现用户注册
- Struts2的值栈详解
- 双缓冲解决Java绘图严重闪烁
- Java判断相等(==和equals()方法)
- C++模板类线性表的实现与测试