`
sunnylocus
  • 浏览: 873533 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

中国联通短信网关接入程序源代码(SGIP1.2协议)

    博客分类:
  • Java
阅读更多

 自从我发了博文“中国联通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

修改内容:

  1. 修改com.tdt.unicom.sgip.svr.SPSender类,将计时器Timer改为ScheduledExecutorService,在测试中发现Timer内部异常时,会将错误传染给倒霉的调用者,导致下发线程全部中断。
  2. 优化了短信下发的流程。
  3. 修复了群发短信时,只有一个手机能收到短信的bug。

以上bug都是根据网友反馈发现的,在这里表示感谢。

 

 

2011-12-16 新包发布 v1.2

修改内容:

  1. 修改com.tdt.unicom.sgip.svr.SPSender类,上一个版本中,如果联通网关断开连接,SP端再次发送短信时,会出现异常,导致短信无法行,v1.2版本已修复该bug。

  感谢网友“白开水”的反馈。

 

2012-02-08 新包发布 v1.3

修改内容:

  1. 将SP的源节点编号,SMG网关的登陆用户名和密码在productionConf.xml配置文件中进行配置,无需再修改源代码的参数。

2013-06-08新包发布    v1.4

修改内容:

  1.   根据反馈,在下发线程因异常中断时,后续的短信无法再继续发送,必须重启才能  解决,该版本修复了该bug,当有线程异常退出时,自动生成的新线程替代已异常退出的线程
  2. 优化了在高并发环境下发送的策略,如果下发线程全部忙碌,采用谁调用谁发送。
  3. 预留相关接口,如果想将收到短信插入数据库,转发其它业务层等请在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)
  • 描述: 过时版本
  • 下载次数: 3908
  • lib.rar (3 MB)
  • 下载次数: 2000
  • UNICOM_v1.1.rar (2.8 MB)
  • 描述: 2011-04-15 发布 新版本
  • 下载次数: 989
  • UNICOM_v1.2.rar (146.1 KB)
  • 描述: 2011-12-16 发布 v1.2
  • 下载次数: 792
  • UNICOM_v1.3.rar (154.5 KB)
  • 描述: 2012-02-08 发布 v1.3
  • 下载次数: 1190
60
6
分享到:
评论
103 楼 limengpig 2013-01-24  
mynameisjf 写道
limengpig 写道
mynameisjf 写道
十分感谢楼主。在你的代码中,我学到了很多东西。但是在运用中,发现一个问题。这个可能是每个运营商实现的不同导致的,就是发送UNBIND的时候,有可能会因为断开SOCKET。in = new DataInputStream(socket.getInputStream()); 导致in.read的时候报错:java.net.SocketException: Connection reset。还有就是由上一个问题引申出来的。如果线程里报错,则全部线程都会死掉。。我目前正在想办法解决。如果有好的办法,希望能够分享


我现在也遇到了这个问题,现在我不再向SMG发送ubind了,不做计时,就一直打开着。
但是又遇到了另一个问题,SMG会自动向我这端发送ubind


哥们,你理解错误了。发送MO的时候,SMG会先向你发送UNBIND。
发送MT的时候,是由你先发送UNBIND给SMG。这是2条线。。



MT的时候,我现在把向SMG发送的ubind已经注释了,
但是MT的时候,SMG也向我发送unbind,而这个时候我这边还在发送短信给SMG,所以就报错了,线程挂掉了,然后都发不出去了。
102 楼 mynameisjf 2013-01-24  
limengpig 写道
mynameisjf 写道
十分感谢楼主。在你的代码中,我学到了很多东西。但是在运用中,发现一个问题。这个可能是每个运营商实现的不同导致的,就是发送UNBIND的时候,有可能会因为断开SOCKET。in = new DataInputStream(socket.getInputStream()); 导致in.read的时候报错:java.net.SocketException: Connection reset。还有就是由上一个问题引申出来的。如果线程里报错,则全部线程都会死掉。。我目前正在想办法解决。如果有好的办法,希望能够分享


我现在也遇到了这个问题,现在我不再向SMG发送ubind了,不做计时,就一直打开着。
但是又遇到了另一个问题,SMG会自动向我这端发送ubind


哥们,你理解错误了。发送MO的时候,SMG会先向你发送UNBIND。
发送MT的时候,是由你先发送UNBIND给SMG。这是2条线。。
101 楼 sunnylocus 2013-01-24  
limengpig 写道
mynameisjf 写道
十分感谢楼主。在你的代码中,我学到了很多东西。但是在运用中,发现一个问题。这个可能是每个运营商实现的不同导致的,就是发送UNBIND的时候,有可能会因为断开SOCKET。in = new DataInputStream(socket.getInputStream()); 导致in.read的时候报错:java.net.SocketException: Connection reset。还有就是由上一个问题引申出来的。如果线程里报错,则全部线程都会死掉。。我目前正在想办法解决。如果有好的办法,希望能够分享


我现在也遇到了这个问题,现在我不再向SMG发送ubind了,不做计时,就一直打开着。
但是又遇到了另一个问题,SMG会自动向我这端发送ubind

你应弄清楚什么情况下,SP向SMG发送unbind命令,SMG什么情况下向SP发向unbind命令。
100 楼 limengpig 2013-01-24  
mynameisjf 写道
十分感谢楼主。在你的代码中,我学到了很多东西。但是在运用中,发现一个问题。这个可能是每个运营商实现的不同导致的,就是发送UNBIND的时候,有可能会因为断开SOCKET。in = new DataInputStream(socket.getInputStream()); 导致in.read的时候报错:java.net.SocketException: Connection reset。还有就是由上一个问题引申出来的。如果线程里报错,则全部线程都会死掉。。我目前正在想办法解决。如果有好的办法,希望能够分享


我现在也遇到了这个问题,现在我不再向SMG发送ubind了,不做计时,就一直打开着。
但是又遇到了另一个问题,SMG会自动向我这端发送ubind
99 楼 mynameisjf 2013-01-23  
十分感谢楼主。在你的代码中,我学到了很多东西。但是在运用中,发现一个问题。这个可能是每个运营商实现的不同导致的,就是发送UNBIND的时候,有可能会因为断开SOCKET。in = new DataInputStream(socket.getInputStream()); 导致in.read的时候报错:java.net.SocketException: Connection reset。还有就是由上一个问题引申出来的。如果线程里报错,则全部线程都会死掉。。我目前正在想办法解决。如果有好的办法,希望能够分享
98 楼 sunnylocus 2013-01-22  
limengpig 写道
您好,老师,现在遇到一个问题,其他同学也提过,就是短信第二次(就是连续运行两次发送短信的客户端,比如每次100条,那么第二次运行的100条就发送不出去)发送的时候就发不出去了,都在队列里排队,但是不发送了,我是用联通的模拟器测试的,不知道是程序问题还是模拟器问题,但奇怪的是不是每次都这样


非常感谢,感谢您百忙之中给讲解一下,非常感谢。

-------------------------------------------------------------------------------------
有网友提过,应该是个bug,有空我排查下。应该是工作线程全部退出了,没有干活的线程从队列里取下发实例了。
97 楼 limengpig 2013-01-21  
您好,老师,现在遇到一个问题,其他同学也提过,就是短信第二次(就是连续运行两次发送短信的客户端,比如每次100条,那么第二次运行的100条就发送不出去)发送的时候就发不出去了,都在队列里排队,但是不发送了,我是用联通的模拟器测试的,不知道是程序问题还是模拟器问题,但奇怪的是不是每次都这样


非常感谢,感谢您百忙之中给讲解一下,非常感谢。
96 楼 limengpig 2013-01-11  
谢谢,收到您的回复,非常感谢!已完美的解决了我的问题。再次感谢。
95 楼 sunnylocus 2013-01-11  
limengpig 写道
您好,非常感谢,我还有一个问题。

SP下行向SMG发送一条短信,会产生一个序列号
用户如果立即向SP回复这条短信,SMG产生的序列号和下行的那个序列号相同吗?或者之前下行的那个序列号还会传回来吗?

为了节省您的时间,请只回复:相同还是不相同。 会还是不会。

非常感谢您,您是一个很有责任心的人。非常感谢。

=======================================================================================================
序列号不相同!每个序列号都是唯一的。

你的第二个问题很好解决。你把SP id和SP Number给混淆了。SP id是一个4位标识符,是SMG区分SP的,而Deliver结构体中的SP Number是SP接入号,简单的计就是产品识别号。一个SP会多个产品,每个产品有对应的产品识别号。假如有3个代理商连接你的SP平台,那你就是在联通平台开设三个产品,将三个产品的识别码分给这三个代理商。我的程序已经考虑到这一点了,在配置文件productionConf.xml,有个productconf节点,里面有个Spnumber,我就是根据Deliver结构体中的SPNumber将短信转给相应的IP地址(参数是transmitip和destport)
94 楼 limengpig 2013-01-10  
您好,非常感谢,我还有一个问题。

SP下行向SMG发送一条短信,会产生一个序列号
用户如果立即向SP回复这条短信,SMG产生的序列号和下行的那个序列号相同吗?或者之前下行的那个序列号还会传回来吗?

为了节省您的时间,请只回复:相同还是不相同。 会还是不会。

非常感谢您,您是一个很有责任心的人。非常感谢。
93 楼 limengpig 2013-01-10  
    看来你还没有弄清楚一个定购关系成立的流程,纠结在某个点上。在没有形成订购关系之前,SP无法给用户下发短信,因为SMG会检查这个号码是否和SP有订购关系,如果没有,SMG会拦截这条短信。形成订购关系的流程是这样:客户首先给SP发送订购短信,SMG将这条短信转发给SP,在转发给SP的短信的结构体中SMG会加一个临时的linkid(即原来保留的reserve字段),SP收到短信后会作出响应短信,如欢迎使用xxx业务,包月xx月,详询电话xxxx。SP下发这条欢迎短信时,要把SMG发过来的linkid放到Submit的linkid里。这样这条短信才能成功下发到客户手机上。客户收到这条短信后,订购关系才会成立,以后SP再向这个客户下发短信的时候就不用再加linkid了。


    非常感谢您的回复,短信上行中用户订购SP业务的这个流程我清楚了,这个流程必须用到这个linkid,然后SP做出订购结果响应,再原封不动的将这个linkid传回SMG,才能让这个订购关系成功。
   
    我现在有一个疑惑,如果SP主动下发给用户一条短信,就是普通的通知短信:比如告诉用户您在我们网站订购的蛋糕已成功支付金额200元,不需要用户回复的这种短信,在发给用户的时候,sp主动在linkid填入了123456,那么report.getReverse()拿到的值也是123456,是不是可以这样认为短信下行的时候,submit 提交linked是什么,report返回的linked就是什么呢?

   我现在主要想解决一个难题: 我做了一个短信平台,在联通申请了spNumber,有几个sp连接我们的短息平台,他们并没有spNumber,他们调用我们短信平台发出去的短信都以我们同一个spNumber的名义,那么当用户主动给某个sp发送一条上行短信时,我这个短信平台无法区分这个用户给哪个sp发的上行短信,也就是我这个短信平台不知道将该上行短信转给谁?我在想找可利用的字段。不可能让联通改接口吧。非常感谢您。耽误你上班时间了。
92 楼 sunnylocus 2013-01-10  
limengpig 写道

  
(3)可以用保留字段(reverse,也就是你所指的linked)吗?这个字段是不是我传给SMG什么,SMG会原封不动的给我传回来呢?
(4)SPSender.java 我看你使用了单例,那么如果UnicomSPMonitor.java使用单例可以吗?
   同一个实例的话是不是就可以轻松的关闭unicomSocket监听呢?
   接受短信的如果产生多个实例会出现什么问题;?
(1)、savemap的实例我忘了删除,你添加删除代码即可。
(2)、MT的序列号与所涉及的Submit或deliver命令的序列号相同。
(3)、保留字段现在已作linkid使用。
(4)、接受短信的类在什么情况下会产生多个实例?

楼主辛苦了,非常感谢您的回复。我还是有不明白的地方:
针对我问的第(3)个问题:
我这样问吧:我MT下行短信时,sp将reverse即LinkID 值设置为ST1234,那SMG report返回的时候,这个字段也是ST1234,对吧?
同样,MO的时候,此字段由SMG方产生,SP收到上行短信后,resp SMG的时候,再将SMG发过来的LinkID原封不动发回去,对吗?
再者,这个字段可以重复吗? 比如MT的时候,两条短信的这个字段都设置值为ST1234。麻烦请回复一下这个问题呗,非常感谢百忙之中还能回复我们,非常感谢。

----------------------------------------------------------------------------
   看来你还没有弄清楚一个定购关系成立的流程,纠结在某个点上。在没有形成订购关系之前,SP无法给用户下发短信,因为SMG会检查这个号码是否和SP有订购关系,如果没有,SMG会拦截这条短信。形成订购关系的流程是这样:客户首先给SP发送订购短信,SMG将这条短信转发给SP,在转发给SP的短信的结构体中SMG会加一个临时的linkid(即原来保留的reserve字段),SP收到短信后会作出响应短信,如欢迎使用xxx业务,包月xx月,详询电话xxxx。SP下发这条欢迎短信时,要把SMG发过来的linkid放到Submit的linkid里。这样这条短信才能成功下发到客户手机上。客户收到这条短信后,订购关系才会成立,以后SP再向这个客户下发短信的时候就不用再加linkid了。
91 楼 limengpig 2013-01-09  

  
(3)可以用保留字段(reverse,也就是你所指的linked)吗?这个字段是不是我传给SMG什么,SMG会原封不动的给我传回来呢?
(4)SPSender.java 我看你使用了单例,那么如果UnicomSPMonitor.java使用单例可以吗?
   同一个实例的话是不是就可以轻松的关闭unicomSocket监听呢?
   接受短信的如果产生多个实例会出现什么问题;?
(1)、savemap的实例我忘了删除,你添加删除代码即可。
(2)、MT的序列号与所涉及的Submit或deliver命令的序列号相同。
(3)、保留字段现在已作linkid使用。
(4)、接受短信的类在什么情况下会产生多个实例?

楼主辛苦了,非常感谢您的回复。我还是有不明白的地方:
针对我问的第(3)个问题:
我这样问吧:我MT下行短信时,sp将reverse即LinkID 值设置为ST1234,那SMG report返回的时候,这个字段也是ST1234,对吧?
同样,MO的时候,此字段由SMG方产生,SP收到上行短信后,resp SMG的时候,再将SMG发过来的LinkID原封不动发回去,对吗?
再者,这个字段可以重复吗? 比如MT的时候,两条短信的这个字段都设置值为ST1234。麻烦请回复一下这个问题呗,非常感谢百忙之中还能回复我们,非常感谢。
90 楼 sunnylocus 2013-01-09  
limengpig 写道
楼主您好!首先非常感谢您的程序,对我帮助很大,真的非常感谢。请帮忙回答几个问题呗,有几个疑惑,非常感谢。

(1)savedmap里的已发送短信不是说获得report后要删除吗,你在哪里删除的?没有看到这个代码。
(2)MT下发短信出去的序列号和report回来序列号相同吗?或者后几位相同吗?我在测试的过程中发现本程序与模拟器测试返回的序列号相同,但与
   联通的短信平台测试返回的序列号不同;
   如果返回的序列号不同,我如何知道联通SMG返回的report对应哪一条信息?所以你才用了savedmap来存储吗?
  
(3)可以用保留字段(reverse,也就是你所指的linked)吗?这个字段是不是我传给SMG什么,SMG会原封不动的给我传回来呢?
(4)SPSender.java 我看你使用了单例,那么如果UnicomSPMonitor.java使用单例可以吗?
   同一个实例的话是不是就可以轻松的关闭unicomSocket监听呢?
   接受短信的如果产生多个实例会出现什么问题;?

(1)、savemap的实例我忘了删除,你添加删除代码即可。
(2)、MT的序列号与所涉及的Submit或deliver命令的序列号相同。
(3)、保留字段现在已作linkid使用。
(4)、接受短信的类在什么情况下会产生多个实例?
89 楼 limengpig 2013-01-09  
楼主您好!首先非常感谢您的程序,对我帮助很大,真的非常感谢。请帮忙回答几个问题呗,有几个疑惑,非常感谢。

(1)savedmap里的已发送短信不是说获得report后要删除吗,你在哪里删除的?没有看到这个代码。
(2)MT下发短信出去的序列号和report回来序列号相同吗?或者后几位相同吗?我在测试的过程中发现本程序与模拟器测试返回的序列号相同,但与
   联通的短信平台测试返回的序列号不同;
   如果返回的序列号不同,我如何知道联通SMG返回的report对应哪一条信息?所以你才用了savedmap来存储吗?
  
(3)可以用保留字段(reverse,也就是你所指的linked)吗?这个字段是不是我传给SMG什么,SMG会原封不动的给我传回来呢?
(4)SPSender.java 我看你使用了单例,那么如果UnicomSPMonitor.java使用单例可以吗?
   同一个实例的话是不是就可以轻松的关闭unicomSocket监听呢?
   接受短信的如果产生多个实例会出现什么问题;?
88 楼 sunnylocus 2012-12-21  
huhaiyuan1234 写道
你好,非常感谢你的分享,目前能成功发送,接受提交响应。但是我收不到上行 和 回执响应。 UnicomSPMonitor 中 switch (Bytes4ToInt(command.header.getCommandId())) 一直是 case 0x1:  //联通向SP发送的绑定命令 。这应该能证明我的上行端口没有问题。并且我用其他程序能接受上行和回执。查了1天,没查出是什么问题。请指教哈。

---------------------------------------------------------------------------------
很明显,是你不让联通网关连接你机器,联通网关连接你的程序的时候,也有一个用户名和密码,肯定是验证不通地。我估计是你没有改修改源代码里的用户名和密码。修改UnicomeSPMonitor类里这段代码if(bind.getLoginName().equals("10628365") && bind.getLoginPassword().equals("10628365")) {
bindresp.setResult((byte) 0);
} ,将10628365改你自己的用户名和密码。
87 楼 e_laoye 2012-12-21  
sunnylocus 写道
e_laoye 写道
你好,首先谢谢你的共享。
在我Run TestSendSms类中的 main方法后,模拟器提示
SocketStreamAccepter(server.assistants.accepter[0017]).getAdapter : 127.0.0.1 wa
s accepted !
SGIPSession(server.session[00170007]).accept : invalid total(2067545976) of pack
et
SGIPSession(server.session[00170007]).accept : unexpected exit !
SimpleAccepter(server.assistants.accepter[0017]).accept : fail to accept session
(session.server.transmitter) !

请问这是什么状况。谢谢。


老兄你搞错了,你是不是直接把TestSendSms类里的main方法的IP地址和端口写成了模拟器的IP地址和端口?首先你要先启动Main类里的Main方法启动短信网关,再用TestSendSms类测试,如果是在短信网关和模拟器都在同一台机器上测试,那么TestSendSms类的IP地址填127.0.0.1,端口填8805.参数定义是在ClientReqMonitor类里。




幸好有你提醒,终于在末日这天完成了这个任务,非常感谢。
86 楼 huhaiyuan1234 2012-12-20  
你好,非常感谢你的分享,目前能成功发送,接受提交响应。但是我收不到上行 和 回执响应。 UnicomSPMonitor 中 switch (Bytes4ToInt(command.header.getCommandId())) 一直是 case 0x1:  //联通向SP发送的绑定命令 。这应该能证明我的上行端口没有问题。并且我用其他程序能接受上行和回执。查了1天,没查出是什么问题。请指教哈。
85 楼 sunnylocus 2012-12-17  
e_laoye 写道
你好,首先谢谢你的共享。
在我Run TestSendSms类中的 main方法后,模拟器提示
SocketStreamAccepter(server.assistants.accepter[0017]).getAdapter : 127.0.0.1 wa
s accepted !
SGIPSession(server.session[00170007]).accept : invalid total(2067545976) of pack
et
SGIPSession(server.session[00170007]).accept : unexpected exit !
SimpleAccepter(server.assistants.accepter[0017]).accept : fail to accept session
(session.server.transmitter) !

请问这是什么状况。谢谢。


老兄你搞错了,你是不是直接把TestSendSms类里的main方法的IP地址和端口写成了模拟器的IP地址和端口?首先你要先启动Main类里的Main方法启动短信网关,再用TestSendSms类测试,如果是在短信网关和模拟器都在同一台机器上测试,那么TestSendSms类的IP地址填127.0.0.1,端口填8805.参数定义是在ClientReqMonitor类里。
84 楼 sunnylocus 2012-12-17  
kinxycs 写道
是我看错了,楼主有其他联系方式吗。我就是长短信的发送还没搞定,希望楼主能指点下,呵呵

SGIP1.2协议里没有长短信的定义呀,下发短信的结构体里也没有相关参数。联通有长短信的补充说明文档吗?

相关推荐

    联通SGIP1.2协议短信接口

    联通SGIP1.2协议,全称为China Unicom Short Message Gateway Interface Protocol 1.2,是中国联通推出的一种短消息网关接口标准,用于实现第三方应用与中国联通短信中心之间的通信。这个协议主要用于企业或服务提供...

    SGIP.rar_ sgip1.2 java_sgip_sgip1.2_联通sgip1.2

    标题中的“SGIP.rar_ sgip1.2 java_sgip_sgip1.2_联通sgip1.2”指的是一个使用Java语言编写的、基于SGIP 1.2协议的程序,主要用于处理中国联通的SGIP 1.2通信协议。SGIP(Short Message Gateway Interface Protocol...

    SGIP1.2Java实现(包括服务端客户端)

    SGIP1.2协议是中国联通的一种短消息网关接口协议,用于实现SP(Service Provider,服务提供商)与SMSC(Short Message Service Center,短消息服务中心)之间的数据交换。本项目提供了一个基于Java语言的完整实现,...

    中国联通sgip1.2模拟网关.rar

    中国联通SGIP1.2模拟网关是一个专门针对中国联通网络服务设计的系统,主要用于SP(Service Provider,服务提供商)与联通网络之间的数据交互和协议转换。这个压缩包文件包含了一个模拟网关的实现以及可能的相关文档...

    联通SGIP1.2完美实现,及模拟网关测试程序

    SGIP1.2协议是中国联通推出的一种用于短信业务的通信协议,全称为“Short Message Gateway Interface Protocol version 1.2”。这个协议主要用于短信中心(SMSC)与短信应用服务器(SMS AS)之间的数据交换,支持...

    联通短信网关SP端应用程序接口使用说明(sgip1.2)[定义].pdf

    【中国联通短信网关SP端应用程序接口使用说明】是中兴通讯提供的一份详细文档,用于指导开发者如何通过接口与联通短信网关进行交互,实现短信的发送和接收。该接口遵循SGIP v1.2协议标准,提供了多种功能函数,以...

    联通短信网关发送程序源码(C#)

    标题中的“联通短信网关发送程序源码(C#)”指的是使用C#编程语言编写的软件,其功能是与中国联通的短信网关进行交互,实现短信的发送和接收状态报告。短信网关是通信运营商提供的接口,允许开发者通过特定协议发送...

    联通的短信网关程序sgip1.3

    标题中的“联通的短信网关程序sgip1.3”指的是中国联通用于处理短信服务的网关应用程序,这个程序是基于SGIP(Short Message Internet Protocol)1.3版本开发的。SGIP是一种在中国广泛使用的短信传输协议,它允许...

    中国联通短信接口SGIP协议的API.rar_C# sgip_sgip c++_发短信_短信平台_短信接口

    在C#和C++中,开发者可以通过SGIP协议的API来实现与中国联通短信网关的交互,进行短信的发送和接收操作。本文将详细介绍SGIP协议以及如何在C#和C++环境中应用这些API。 首先,SGIP(Short Message Internet ...

    SGIP模拟网关

    "联通模拟网关大全(非常好使.)"这个压缩包文件名暗示里面可能包含了多种用于模拟中国联通SGIP网关的工具或资源,可能包括源代码、配置文件、文档、示例脚本等,对于理解和使用SGIP模拟网关会非常有帮助。用户可以...

    联通SGIP 源码

    联通SGIP(Short Message Internet Protocol)是一种由中国联通推出的短信网关协议,主要用于实现短信服务提供商与中国联通短信中心之间的数据交换。SGIP1.2是该协议的一个版本,它在SGIP1.0的基础上进行了改进和...

    联通短信接口发送和接收

    SGIP是中国联通用于短信业务的一种标准接口协议,它允许第三方应用程序通过网络与中国联通的短信网关进行交互,实现短信的发送、接收以及状态查询等功能。 SGIP协议是基于TCP/IP协议栈构建的,它定义了客户端(如...

    JAVA联通短信代码

    中国联通作为中国三大电信运营商之一,提供了丰富的API和SDK供开发者使用,以便在各种应用程序中发送和接收短信。 联通短信服务的Java代码实现主要包括以下几个核心概念和技术: 1. **SMS协议**:联通短信服务可能...

    Uni.rar_sgip_uni

    "Uni.rar_sgip_uni"这一标题所揭示的主题,是关于中国联通SGIP1.2协议在短信提交功能中的应用,以及如何实现与数据库的自动化对接。这一技术细节对于理解通信协议、数据库管理和自动化流程具有深远的意义。 SGIP...

    海南联通的一个SGIP协议短信API的例子程序.rar_C# sgip_sgip_sgip c++_联通_联通sgip

    SGIP(Short Message Gateway Interface Protocol)协议是中国联通用于短信服务的一种通信协议,它定义了短信中心(SMSC)与上位机系统之间的交互规范。在这个压缩包文件中,我们主要探讨的是如何使用C#和C++来实现...

    移动、联通、电信短信发送程序。

    标题中的“移动、联通、电信短信发送程序”指的是一个能够向中国移动、中国联通和中国电信三大运营商的用户发送短信的软件应用。这种程序通常基于特定的通信协议,如CMPP(China Mobile Peer to Peer)、SGIP(China...

    企信通短信平台 客户端WEB网页版源代码 全协议网关

    - **全协议支持**:平台支持中国移动CMPP协议、中国联通SGIP协议、中国电信SMGP协议、中国网通CNGP协议、国际通信协议SMPP协议,以及《中国电信综合业务接入网关_ISAG_开放接口协议》等多种自定义协议(如Socket、...

    sgip.rar_java SGIP_sgip_sgip java_联通sgip

    SGIP(Short Message Gateway Interface Protocol)是中国联通推出的一种短消息网关接口协议,主要用于移动通信网络中的短信业务处理。这个“sgip.rar”压缩包包含了使用Java语言实现的SGIP协议解析和应用的源代码,...

Global site tag (gtag.js) - Google Analytics