CMPP2.0 SP 端开发设计思路
来源:互联网 发布:金鹰220轨道车数据 编辑:程序博客网 时间:2024/06/10 08:55
- 我写在这里只是想把握的思路记录在这里而已,我并不是CMPP SP开发的高手,我只是刚刚入门而已.问题想多了,总是把前面的东西给忘记了,看来记性不是很好啊,所有要把我想的东西给点点滴滴的记录下来,当然,我的想法也有可能是错误的,希望给予批评改进.
应用程序使用的是收发二级缓冲.
一级缓冲 二级缓冲接受数据缓冲 把从网络中接受的数据放在这里rbuffer 只保留CMPP_DELIVER消息结构的对象.让应用程序可以读取手机用户发送给SP的短信,或ISMG发送给SP的状态报告,可以使用集合或map类来实现.发送数据缓冲 把待发送的网络数据放在这里sbuffer,通过send函数发送出去 只保存CMPP_SUBMIT消息,主要的作用还是用于获取MSg_ID和判断该消息是否发送到用户的手机上.- Initialize():初始化系统资源函数.这里的系统资源不单单是操作系统的资源,所指的是应用程序用的到资源,如socket对象,socket事件对象,事件内核对象,消息序号等.
- Unitialize():就是释放系统的资源了,只要释放操作系统资源和堆内存就可以了,不用多说,一看,什么时候都会明白.
- SocketConnect():由于cmpp通信是建立在TCP/IP的基础上,所以SP与ISMG进行CMPP消息通信之前必须先建立socket通信.
- SocketClose():
- SendCmppConnect()发送CMPP_CONNECT消息,登陆ISMG网关了,只有登陆了ISMG网关以后才可以进行通信的了.
- 线程函数:SocketEventProc():socket网络事件处理函数,调用WSAWaitForMatlipleEvents等待网络事件的发生,分析网络事件,如果是FD_READ则读取网络数据放在rbuffer中,然后判断rbuffer中的数据大小,如果rbuffer中的数据长度>=sizeof(消息结构头),那么就 通知 CMPP消息处理线程获取数据,进行相应的处理,然后继续等待下一个事件的发生.如果是FD_CONNECT则发送登陆网关的消息,FD_CLOSE,......相应的处理.
- 线程函数:CMPPDataDisposeProc();处理cmpp数据的. hevet----事件内核对象.调用WaitForSingleObject()函数,等到指定的事件发生,(当事件变为通知状态时,说明rbuffer中已有数据可以处理)通过获取rbuffer中的数据,并转化位CMPP_HEADER对象,依据cammand_id,进行相应的处理.比较重要的是CMPP_CONNECT,CMPP_SUBMIT_RESP,CMPP_DELIVER,CMPP_ACTICE_TEST.......,着中处理SUBMIT_RESP,DELIVER,对DELIVER的处理:把该消息送入二级缓存,通知(也可以不用,待应用程序自己来获取)应用程序读短消息线程来获取.
- CMPP_SUBMIT消息发送线程:该线程视应用程序是否需要.所有的CMPP_SUBMIT消息都要放入二级缓存和已经缓存,一般的 消息只要放入一级缓冲就可以了.然后通知发送winsock数据线程发送数据.
- winsock发送数据线程.调用WaitForSingleObject等待发送缓冲区有数据可发送的通知,当收到通知时,把rbuffer的数据发送出去.
今天就想了这些了,改天有什么想法在补充.
- CMPP2.0 SP 端开发设计思路
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发(转)
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发
- CMPP2.0 协议SP端的·NET开发(转)
- 中国移动通信cmpp2.0短消息网关sp端程序 杂志
- 中国移动通信cmpp2.0短消息网关sp端程序 v2.51 官方
- 协议开发 中移动CMPP2.0协议API(三)
- 协议开发 中移动CMPP2.0协议API(四)
- 协议开发 中移动CMPP2.0协议API(一)
- 协议开发 中移动CMPP2.0协议API(二)
- 协议开发 中移动CMPP2.0协议API(三)
- 协议开发 中移动CMPP2.0协议API(四)
- Plug-In framework using DLLs
- asp中导出到CSV
- 十年MFC经历认识的Microsoft技术(zz)
- MSN协议中文释义(Zz)
- [JS]“正在处理...”和“进度条”
- CMPP2.0 SP 端开发设计思路
- asp 的DES加密文件
- 正在学习分形
- visual basic.net中的串口通信
- 一生受用的数学公式
- 生成语法高亮代码
- 浅谈blog
- 努力着……
- JSP定制标记——分析java.util.Locale,根据地区选择显示日期的标记