前早段时间接手一个关于联通短信网关的项目,此项目是同事在网上down的代码上进行二次开发而成!
经过艰难的一个月调试,终于告一段落!给我感触最深的2个想法就是:
1.上传到网上或者分享给别人代码务必多进行测试,尽量保证正确,对于代码来说半成品与废品差不了多少!
行百里者半于九十,有时候真正花费时间仅仅是少数几个问题!
2.不要对别人封装的代码有敬畏之心,改动刀子的地方尽可大胆去尝试!
下面说说项目中具体遇到一些问题吧!(因为是维护,其中关于打包/解包,socket,协议等就不多说了)
一 . 发送方面的问题(sp—>手机)
因发送数据是持久在数据库中,系统启动时启动一线程,循环扫描数据库,查询记录后进行发送!
即:try{
while(true){
//读取数据库
//发送
//更新状态
}catch{
}
}
这结构出现2个问题
1.try在循环外面,一旦出现异常,线程就停止,所以必须将其放入循环里!
2.循环不能用true,而应该用标志位,在函数外可以将其置位来控制线程的运行状态!我们采用在spring装载类时指定init-method="start" destroy-method="dispose">
这样在此线程随类装载而启动,销毁而停止!
二.多线程的问题
现有发送线程sendTread与接收线程recvThread
sendTread
{
A//insert records
}
recvThread
{
B//select records
}
在以上结构的情况有可能会在发送进程中插入的数据,在接收方如果马上去查可能会读不到,因为数据持久化需要一定时间!
所以可以采用在B尽量让线程sleep一会或者采用循环读取直到读到数据才往下执行!
三.长短信的问题(遗留问题)
其实这个问题我没解决,最后没办法只能在前台将输入短信内容限制在70字!
我根据http://blog.csdn.net/xzdwfwt111/archive/2009/02/19/3908983.aspx这个兄弟说得进行尝试,
这种方式是交给网关去处理,可以不知怎么每次第一条短信前面会有乱码!
另外尝试过自己对短信内容进行拆分,后来发现中英文与字符长度问题,感觉挺复杂,因时间问题而又放弃!
四.其他问题
1.应答消息的包头序列号与原消息的序列号必须是一样的!
2.应答消息打包时候长度不能出错,否则网关收不到正确的消息,会重发原消息三次!
上班时间,只是凭着记忆整理了下!
分享到:
相关推荐
SGIP短信网关是通信行业中用于短信服务的重要接口协议,主要应用于中国移动和中国联通的短信业务。这个协议使得第三方应用和服务能够通过与短信网关交互,实现短信的发送、接收和管理。下面将详细介绍SGIP协议及其...
SGIP(Short Message Gateway Protocol,短信网关协议)是一种用于移动通信网络中处理短信服务的协议...通过研究SGIP源码和相关文档,开发者可以深入了解短信网关的工作原理,为开发、优化或集成SGIP服务提供技术基础。
在这个上下文中,它可能包含了关于如何配置和运行中国联通短信网关接入程序的详细步骤,以及可能遇到的问题和解决方案。然而,由于我们没有实际的内容,我将基于一般情况来解释SGIP1.2协议和短信网关接入程序的核心...
标题中的“联通的短信网关程序sgip1.3”指的是中国联通用于处理短信服务的网关应用程序,这个程序是基于SGIP(Short Message Internet Protocol)1.3版本开发的。SGIP是一种在中国广泛使用的短信传输协议,它允许...
中国联通SGIP1.2短消息网关开发接口库是中国联通为开发者提供的一个接口库,用于构建与SGIP1.2协议兼容的应用程序,以便通过中国联通的短信网关发送和接收短信。SGIP(Short Message Gateway Interface Protocol)是...
SGIP(Short Message Peer-to-Peer)是一种广泛应用的短信传输协议,主要在电信行业中用于实现短信中心(SMSC)与其他系统之间的数据交换。本主题聚焦于SGIP网关模拟器的配置,特别是针对华为设备的设置。华为作为...
【联通短信网关JAVA接口】是通信行业中一种重要的技术实现,它主要用于企业或服务提供商与运营商之间进行短信发送和接收的交互。JAVA接口是开发者利用Java编程语言与短信网关进行通讯的工具,使得应用程序能够方便地...
总结来说,联通SGIP1.2接口Java版实现是一个包含了客户端和服务端的通信解决方案,它基于SGIP1.2协议,用于处理短信业务。开发者需要理解协议规范,掌握Java网络编程,了解SSL/TLS等安全机制,并进行充分的测试,以...
在提供的文件“31350093-infoX-SMS GW 接口开发指南-(V1.5D211_01)”中,开发者可以找到关于华为短信网关接口的详细信息,包括但不限于: 1. 协议规范:文件可能包含了CMPP、SGIP和SMPP的具体协议细节,包括数据...
SGIP协议是一种基于TCP/IP的协议,设计用于在短信中心(SMSC)与短信网关之间传递短消息、状态报告以及其他控制信息。它支持多种业务类型,如点对点短信、群发短信以及彩信等。 2. **接口参数**: - **连接参数**...
4. 开发短信网关的过程中,模拟器可以帮助识别和解决以下问题: - 消息格式错误:每个协议都有其特定的消息格式,模拟器可以验证消息结构是否符合规范。 - 通信稳定性:通过模拟器,开发者可以测试在高并发、大...
标题中的“SGIP.rar_ sgip1.2 java_sgip_sgip1.2_联通sgip1.2”指的是一个使用Java语言编写的、基于SGIP 1.2协议的程序,主要用于处理中国联通的SGIP 1.2通信协议。SGIP(Short Message Gateway Interface Protocol...
SP在需要发送短信时,会通过这些接口与联通的短信网关进行交互。"SmsSGIPService.java"这个文件很可能是实现SGIP协议服务的Java类,它包含了建立连接、发送短信、接收响应等功能的代码。在Java编程中,通常会定义一...
SGIP协议则是另一种短信网关接口协议,它主要用于中国移动的TD-SCDMA网络。SGIP协议同样包含了多种操作指令,如SUBMIT用于发送短信,DELIVER用于接收短信,REPORT用于上报短信状态等。SGIP协议在设计上比CMPP更为...
SGIP(Short Message Gateway Interface Protocol)是中国联通推出的一种短信网关接口协议,主要用于服务提供商(SP)与联通短信中心之间进行数据通信,实现短信的发送、接收和管理等功能。这个协议是SP接入中国联通...
**SGIP Kaifa**:"sgip_kaifa"可能指的是SGIP的开发指南或教程,包含了开发过程中的步骤、最佳实践以及可能遇到的问题和解决方案。 **测试文档**:这是必不可少的一部分,通常包括单元测试、集成测试和性能测试的...
SGIP是中国联通用于短信业务的一种标准接口协议,它允许第三方应用程序通过网络与中国联通的短信网关进行交互,实现短信的发送、接收以及状态查询等功能。 SGIP协议是基于TCP/IP协议栈构建的,它定义了客户端(如...
2. **消息交互流程**:在实际应用中,业务平台会先与短信网关建立连接,然后通过SGIP协议发送短信请求,网关接收到请求后处理并返回响应。如果网络出现问题,可能导致消息传递不畅或者超时,因此需要对网络环境和...
SGIP(Short Message ...理解并熟练使用这些资源,可以帮助我们搭建和维护一个可靠的SGIP短信平台。同时,熟悉SGIP协议的原理和特性,对于网络通信、移动应用开发和电信行业的专业人士来说,都是必不可少的技能。