⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgipapi_8h-source.html

📁 用c++编写的的中国联通Sgip协议
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>sgipapi: sgipapi.h源文件</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- 制作者 Doxygen 1.5.1-p1 --><div class="tabs">  <ul>    <li><a href="main.html"><span>首页</span></a></li>    <li><a href="namespaces.html"><span>Namespaces</span></a></li>    <li><a href="annotated.html"><span>数据结构</span></a></li>    <li id="current"><a href="files.html"><span>文件</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="files.html"><span>文件列表</span></a></li>    <li><a href="globals.html"><span>全局定义</span></a></li>  </ul></div><h1>sgipapi.h</h1><a href="sgipapi_8h.html">浏览该文件的文档。</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//*************************************************************************************************************</span><a name="l00002"></a>00002 <span class="comment">//      文件名称:       SGIP.h</span><a name="l00003"></a>00003 <span class="comment">//      实现功能:       中国联通短消息业务联网协议1.2版(sgip1.2 最新0213升级版)头文件.</span><a name="l00004"></a>00004 <span class="comment">//      文件作者:       PrinceToad(范圣刚,北京风起水流软件工作室)</span><a name="l00005"></a>00005 <span class="comment">//      软件声明:       免费提供SP短消息网关开发接口库下载使用(CMPP3.0,SGIP1.2,CMPP2.0)</span><a name="l00006"></a>00006 <span class="comment">//                              Used Free,SourceCode On Sale!</span><a name="l00007"></a>00007 <span class="comment">//      联系方式:       </span><a name="l00008"></a>00008 <span class="comment">//                              Homepage:Http://www.zealware.com</span><a name="l00009"></a>00009 <span class="comment">//                              MSN:    princetoad2003@hotmail.com</span><a name="l00010"></a>00010 <span class="comment">//                              OICQ:   50506711</span><a name="l00011"></a>00011 <span class="comment">//                              Email:  princetoad@gmail.com</span><a name="l00012"></a>00012 <span class="comment">//                              PhoneNo:010-13901168061</span><a name="l00013"></a>00013 <span class="comment">//      软件版本:</span><a name="l00014"></a>00014 <span class="comment">//                              V1.61 May.07.06</span><a name="l00015"></a>00015 <span class="comment">//                                      1.修正了上行连接线程安全的一个Bug.</span><a name="l00016"></a>00016 <span class="comment">//</span><a name="l00017"></a>00017 <span class="comment">//                              V1.6 Mar.25.06</span><a name="l00018"></a>00018 <span class="comment">//                                      1.加入了是否对网关登录SP的用户名口令进行验证的配置和参数。</span><a name="l00019"></a>00019 <span class="comment">//                                      2.加入了对网关连接SP的最大连接数进行配置的参数。</span><a name="l00020"></a>00020 <span class="comment">//                                      3.增加了输出调试日志的接口。</span><a name="l00021"></a>00021 <span class="comment">//                                      4.增加了允许设定线城池的工作线程数的参数配置。</span><a name="l00022"></a>00022 <span class="comment">//                                      5.支持输出SMG到网关的连接的连接数,SOCKET句柄,和远程端口(可以在外部关闭网关连接)。</span><a name="l00023"></a>00023 <span class="comment">//                                      6.回调函数返回值改为int.(允许在回调函数中返回值)</span><a name="l00024"></a>00024 <span class="comment">//                                      7.修正了一些BUG.</span><a name="l00025"></a>00025 <span class="comment">//                              V1.42 Jul.30.04</span><a name="l00026"></a>00026 <span class="comment">//                                      1.不对SUBMIT消息的MSGCONTENT长度作限制,原来的长度限制160,现在只要整个消息包不超过2K就可以.</span><a name="l00027"></a>00027 <span class="comment">//                              V1.41 Jul.30.04</span><a name="l00028"></a>00028 <span class="comment">//                                      1.加入了对MO连接远程服务器IP地址的判断,防止非法攻击!</span><a name="l00029"></a>00029 <span class="comment">//                                      2.彻底修正了MT断开重连,再发消息的Bug,MTRESP不会再返回255的错误.</span><a name="l00030"></a>00030 <span class="comment">//                              V1.4  Jul.19.04</span><a name="l00031"></a>00031 <span class="comment">//                                      1.修正了一个返回函数指针错误的问题。.(Special Thanks mate.)</span><a name="l00032"></a>00032 <span class="comment">//                                      2.增加了了程序启动模式,在Start函数里,当指定nLocalPort = -1时,不建立本地监听,只执行发送模块;</span><a name="l00033"></a>00033 <span class="comment">//                                        当指定nPeerPort = -1时,只进行监听,接收MO消息,不建立同网关的连接.</span><a name="l00034"></a>00034 <span class="comment">//                              V1.36 Jun.07.04</span><a name="l00035"></a>00035 <span class="comment">//                                      1.修改了多连接分配时候的一个Bug,该Bug能够导致在流量比较大的时候丢失MT消息。</span><a name="l00036"></a>00036 <span class="comment">//                                      2.去除了除试用版过期的以外的其他消息提示对话框。</span><a name="l00037"></a>00037 <span class="comment">//                                      3.Start函数里面加了一个参数fOutputDebugInfo,用来指示是否输出调试信息,</span><a name="l00038"></a>00038 <span class="comment">//                                        如果输出的话,DLL会在当前目录下建立一个文本文件debug.log,输出DLL的相关信息,</span><a name="l00039"></a>00039 <span class="comment">//                                        用作调试,出现错误情况时可以查看该文件。</span><a name="l00040"></a>00040 <span class="comment">//                              V1.34 Apr.13.04</span><a name="l00041"></a>00041 <span class="comment">//                                      1.修改了接收超时导致丢失MO消息的问题。</span><a name="l00042"></a>00042 <span class="comment">//                              V1.33 Mar.30.04</span><a name="l00043"></a>00043 <span class="comment">//                                      1.根据联通的最新修改,LinkId字段不作为两个整数来处理,直接作为8字节的字符串处理。</span><a name="l00044"></a>00044 <span class="comment">//                              V1.32 Mar.23.04</span><a name="l00045"></a>00045 <span class="comment">//                                      1.修改了连接中断后,重连的一个Bug.</span><a name="l00046"></a>00046 <span class="comment">//                              V1.3  Mar.07.04</span><a name="l00047"></a>00047 <span class="comment">//                                      1.修改了MT消息的发送方式,发送方式由原来的短连接(即一条消息建立一次连接)改为</span><a name="l00048"></a>00048 <span class="comment">//                                        现在的长连接,提高了发送效率,减轻了网关负担。</span><a name="l00049"></a>00049 <span class="comment">//                                      2.Start()函数增加了一个参数,允许用户自定义同网关建立的连接数,默认是3</span><a name="l00050"></a>00050 <span class="comment">//                                        (网关连接数最好不要超过数值N, N = CPU个数*2 + 2)。</span><a name="l00051"></a>00051 <span class="comment">//                              V1.28 Feb.26.04</span><a name="l00052"></a>00052 <span class="comment">//                                      1.还是根据《SGIPV1.2协议适应性修改0120(SP分册)》作了相应修改。</span><a name="l00053"></a>00053 <span class="comment">//                                      2.根据协议变更,修改了Submit, Deliver, deliverstr结构体的定义,增加或者修改了Reserved,linkid字段。</span><a name="l00054"></a>00054 <span class="comment">//                                      3.修改了MO,MT消息收发函数.</span><a name="l00055"></a>00055 <span class="comment">//                              V1.27 Feb.16.04</span><a name="l00056"></a>00056 <span class="comment">//                                      1.根据《SGIPV1.2协议适应性修改0120(SP分册)》作了相应修改.</span><a name="l00057"></a>00057 <span class="comment">//                              V1.26 Jan.27.04</span><a name="l00058"></a>00058 <span class="comment">//                                      1.修正了MTError时,mt_err结构提没有带回DateTime的错误。 </span><a name="l00059"></a>00059 <span class="comment">//                              V1.25 Dec.22.03</span><a name="l00060"></a>00060 <span class="comment">//                                      1.在Submit函数中返回了submit消息包序列号中的时间戳(与Reponse和Report中的时间戳是对应的),</span><a name="l00061"></a>00061 <span class="comment">//                                        通过时间戳与序列号的结合彻底解决了序列号唯一对应的问题(哪怕是系统重新启动).</span><a name="l00062"></a>00062 <span class="comment">//</span><a name="l00063"></a>00063 <span class="comment">//                              V1.24 Dec.04.03</span><a name="l00064"></a>00064 <span class="comment">//                                      1.更正了在接收消息包时未给ReportStr中的nSubmitSeqId字段赋值的错误。</span><a name="l00065"></a>00065 <span class="comment">//                                      2.更正了MTError返回时不能带回序列号的问题.      </span><a name="l00066"></a>00066 <span class="comment">//                                      3.在ReportStr字段中加入新的字段unsigned int nSubmitDateTime,用于保存更加详细的Report内容.</span><a name="l00067"></a>00067 <span class="comment">//</span><a name="l00068"></a>00068 <span class="comment">//                              V1.23 Nov.25.03</span><a name="l00069"></a>00069 <span class="comment">//                                      1.MTErrorStr和MTRespStr两个消息结构中增加一个sgipg_submit字段,用于返回其对应的SUBMIT消</span><a name="l00070"></a>00070 <span class="comment">//                                       息包,即这两个消息是由哪个SUBMIT包返回的,原因是SubmitResp包中并未包含开发者可能用到的必要信</span><a name="l00071"></a>00071 <span class="comment">//                                       息(如手机号码等,虽然这些信息在Report消息里面包含的比较全面)。</span><a name="l00072"></a>00072 <span class="comment">//</span><a name="l00073"></a>00073 <span class="comment">//                              V1.21 Nov.08.03</span><a name="l00074"></a>00074 <span class="comment">//                                      1.增加了函数CSgip::AddUserNumber(),可以方便地进行短消息群发.</span><a name="l00075"></a>00075 <span class="comment">//                                      2.增加了函数CSgip::GetSubmitSeqId(),功能是获得下一条submit消息的序列号.</span><a name="l00076"></a>00076 <span class="comment">//                                       在调用Submit()函数前调用可以提前获得将要发送的submit消息的序列号,类推的话,</span><a name="l00077"></a>00077 <span class="comment">//                                       下一条submit消息的序列号将在上一条消息序列号的基础上加3.这样的话就可以提前给submit消息编号,</span><a name="l00078"></a>00078 <span class="comment">//                                       然后等待submit_resp消息的到来。</span><a name="l00079"></a>00079 <span class="comment">//                                      3.CSgip::Submit()函数的原型由CSgip::Submit(sgipg_submit ss)变为</span><a name="l00080"></a>00080 <span class="comment">//                                       CSgip::Submit(sgipg_submit ss, unsigned int &amp;nSeq),输出参数nSeq的作用是返回submit消息的序列号.</span><a name="l00081"></a>00081 <span class="comment">//</span><a name="l00082"></a>00082 <span class="comment">//                              V1.2  Sep.11.03</span><a name="l00083"></a>00083 <span class="comment">//</span><a name="l00084"></a>00084 <span class="comment">//**************************************************************************************************************</span><a name="l00085"></a>00085 <span class="preprocessor">#ifndef _SMAL_SGIP_API_H</span><a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define _SMAL_SGIP_API_H</span><a name="l00087"></a>00087 <span class="preprocessor"></span><a name="l00088"></a>00088 <span class="preprocessor">#include &lt;<a class="code" href="smal_8h.html">smal.h</a>&gt;</span><a name="l00089"></a>00089 <span class="preprocessor">#include &lt;<a class="code" href="threadpool_8h.html">common/threadpool.h</a>&gt;</span><a name="l00090"></a>00090 <span class="preprocessor">#include &lt;<a class="code" href="const_8h.html">common/const.h</a>&gt;</span><a name="l00091"></a>00091 <span class="preprocessor">#include &lt;<a class="code" href="sgip__message_8h.html">sgip/sgip_message.h</a>&gt;</span><a name="l00092"></a>00092 <a name="l00093"></a>00093 <span class="preprocessor">#include &lt;list&gt;</span><a name="l00094"></a>00094 <span class="keyword">using namespace </span>std;<a name="l00095"></a>00095 <a name="l00096"></a>00096 <span class="preprocessor">#pragma warning(disable : 4251)</span><a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable : 4018)</span><a name="l00098"></a>00098 <span class="preprocessor"></span><a name="l00099"></a>00099 <span class="keyword">class </span><a class="code" href="class_c_sgip.html">CSgip</a>;<a name="l00100"></a>00100 <a name="l00104"></a><a class="code" href="class_c_job_sgip.html">00104</a> <span class="keyword">class </span><a class="code" href="class_c_job_sgip.html">CJobSgip</a> : <span class="keyword">public</span> <a class="code" href="struct_i_job_desc.html">IJobDesc</a> {<a name="l00105"></a>00105 <span class="keyword">public</span>:<a name="l00106"></a>00106         <a class="code" href="class_c_job_sgip.html#71296f9507c794a864af8b8ccd714be2">CJobSgip</a>(SOCKET &amp;hSocket, <a class="code" href="class_c_sgip.html">CSgip</a>* sgip, <span class="keywordtype">unsigned</span> remoteport);<a name="l00107"></a>00107         <a class="code" href="class_c_job_sgip.html#71296f9507c794a864af8b8ccd714be2">CJobSgip</a>(<a class="code" href="structsgipg__submit.html">sgipg_submit</a> pss, <a class="code" href="class_c_sgip.html">CSgip</a>* sgip, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nSeq, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nDateTime);<a name="l00108"></a>00108         <a class="code" href="class_c_job_sgip.html#d1c1cd31a36d89a670ae366299395115">~CJobSgip</a>();<a name="l00109"></a>00109 <a name="l00110"></a>00110         <span class="keywordtype">void</span>    <a class="code" href="class_c_job_sgip.html#b23944ed6cc8dd7a8c9d25a68fa245e5">RecvMOProc</a>();<a name="l00111"></a>00111         <span class="keywordtype">void</span>    <a class="code" href="class_c_job_sgip.html#2b8211e3fb3f1e29139478d18b897584">SendMTProc</a>();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -