请教CMPP2短信收发问题(200)

  • 主题发起人 lizhenhe
  • 开始时间
L

lizhenhe

Unregistered / Unconfirmed
GUEST, unregistred user!
最近公司用delphi做了一个CMPP2短信收发程序,但只能发、不能收,而我们却想实现兼顾收发,在开发过程中已完全按照中国移动的CMPP2协议进行开发了,想请教做过这方面的大哥大姐帮帮忙给些经验[:)]因为涉及的代码太多,没传上来。我们的短信收发流程如下:1、以TClientSocket(阻塞方式)连接移动网关,并通过验证;2、在没上行短信时,以60秒钟为单位进行一次脉动,如果连续三次不通就重新连接;3、上/下行短信处理方式:开两个线程处理上/下行短信,在上行线程中使用滑动窗方式发出短信,每发16条短信(或不够16条但已发完)时,将调用获取Socket通道的数据,直到通道数据为空后再进行下一轮的上行动作(获取的下行数据直接传到另一个线程中分析处理),如此循环执行。4、关闭程序时,系统断开Socket
 
看过网上很多资料,但找不到适合的,能实现的一般都是用java包,而我们需要delphi的资料
 
移动网关 可以随便连接吗?这个要向 移动索取 编程接口吧
 
我们公司有一条移动的专线,也向移动申请了帐号,可以直接连接移动网关的
 
咨询过移动技术员,他们只叫我们按照CMPP2协议开发,没有接口之类的,协议也是自己到网上下载的
 
不建议使用阻塞方式,,我很奇怪你怎么能用阻塞方式获取到上行的。难道一直轮询等待超时? 太没效率了。。。 坚决不使用。对了,我对你说的上行,下行概念有点异议, 发出短信到手机终端上的过程一般直接称为下行,不考虑中间网关。cmpp2很早的协议了。。很简单的。。收发并行也没有任何问题。有各自的处理队列就行了。简单应用,可以直接记入数据库,连队列都不要了。有兴趣的话,可以联系我qq346970558注明dfw即可。
 
TO: shangshang我先试试,成功后再结分[:D]
 
搞个现成的开发包啊比如华为的?自己从零实现也可以,但没有那个必要。
 
用Indy的TCPClient就可以了。没有那么麻烦的。关键是你需要按照CMPP或SMPP协议组包成一个byte数组发给CMSC就可以了。完全按照中国移动的协议挨个来就成。
 
TO: shangshang已基本搞定了,我在脉动方面做了修改,没按网上的做法,现在每隔30秒脉动一次,如果没反应就重新连接。
 
顶部