短信网关接入程序源代码(SGIP协议)

      短信网关接入程序的源码,基于SGIP协议1.2版本的进行了整理和改动,附件中有可运行版本的Demo以及SGIP1.2可运行的源码,对于SP接入程序运用的技术主要是多线程+Socket+各种协议的了解。

     在开发中,多线程中要注意的是Dead Lock问题,线程"死等"的话会影响Web性能以及产生内存问题,所以在最大线程数以及响应时间要思考清楚,这部分是多线程需注意的,其次是Socket开发,这部分相比较代码固定些,首先创建连接的Scoket,然后通过Bind输入流得到连接状态,如state具体说明如下:

   0:无错误,命令正确接收

  1:非法登录,如登录名、口令出错、登录名与口令不符等

  2:重复登录,如在同一TCP/IP连接中连续两次以上请求登录

  3:连接过多,指单个节点要求同时建立的连接数过多

  4:登录类型错,指bind命令中的logintype字段出错

  5:参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符

等等类型的错误,根据具体错误匹配进行问题排查。在获得了状态无误后,通过Submit向网关write,然后通过read其in的方式获得是否发送成功。

  对于和网关的连接中,头和体的定义很关键,否则会被网关过滤或者"死等"状态,消息ID及对应值如:

 

SGIP_BIND

0x1

SGIP_BIND_RESP

0x80000001

SGIP_UNBIND

0x2

SGIP_UNBIND_RESP

0x80000002

SGIP_SUBMIT

0x3

SGIP_SUBMIT_RESP

0x80000003

SGIP_DELIVER

0x4

SGIP_DELIVER_RESP

0x80000004

SGIP_REPORT

0x5

SGIP_REPORT_RESP

0x80000005

SGIP_ADDSP

0x6

SGIP_ADDSP_RESP

0x80000006

SGIP_MODIFYSP

0x7

等等对于commandid的定义....

具体源码及可运行实例见附件,如需交流私下沟通:

 

 

你可能感兴趣的:(源代码)