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

📄 sgipapi.htm

📁 该接口库是用VC6.0开发的基于Windows平台上的SGIP1.2协议的实现
💻 HTM
📖 第 1 页 / 共 5 页
字号:
tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US>1)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>严格按照</span><span lang=EN-US>SGIP1.2</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>协议实现,支持</span><span lang=EN-US>Bind, BindResp,Submit,
SubmitResp, Deliver, DeliverResp, Report, ReportResp, Unbind, UnbindResp</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>消息。</span></p>

<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l1 level1 lfo2;
tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US>2)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>采用多线程并发处理的方式获取强大的性能,针对</span><span
lang=EN-US>SGIP</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>协议的特点,内建线程池进行消息的收发及处理操作,充分发挥系统和网络性能,再大的业务量也能够得到及时处理,丢包率小于</span><span
lang=EN-US>0.01/%</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>。</span></p>

<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l1 level1 lfo2;
tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US>3)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>发送消息采用短连接的方式;接收消息采用半长连接的方式,可以设置超时时间,在没有消息的情况下,主动断开网关连接。</span></p>

<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l1 level1 lfo2;
tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US>4)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>接口库经过高度封装,模块化强,使用简单,屏蔽了网关通信,消息收发和处理的复杂性操作,</span><span
lang=EN-US>SP</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>用户只需要关注具体的业务处理过程,大大简化了短消息开发的难度!</span></p>

<h2><span lang=EN-US>3.</span><span style='font-family:黑体;mso-ascii-font-family:
Arial'>接口函数</span></h2>

<p class=MsoNormal style='text-indent:18.0pt'><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>该接口库以动态库的形式提供,包含以下三个文件:</span><b><span
lang=EN-US style='color:blue'>sgip.h, sgip.lib, SGIP.DLL.</span></b><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>在动态库中导出了</span><span lang=EN-US>CSgip</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>类,包含以下接口函数:</span></p>

<h3><span lang=EN-US>2.1 Start</span></h3>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;mso-bidi-font-size:
12.0pt'>int Start(char* sLocalIP, int nLocalPort, char* sPeerIP, int nPeerPort,
char* sLoginName, char* sLoginPwd, int nConnType, char* sSrcNum, void
(*PDeliver)(DeliverStr<span style="mso-spacerun: yes">&nbsp; </span>deliver),
void (*PReport)(ReportStr report), void (*PResponse)(MTRespStr<span
style="mso-spacerun: yes">&nbsp; </span>response), void (*PMTError)(MTErrorStr
mterror))<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>用于启动消息收发和处理线程池,连接监听线程,并且用提供的用户名和口令尝试登录网关。线程池的起始工作<b><span
style='color:blue'>线程数量</span></b></span><b><span lang=EN-US style='color:blue'>
= CPU</span></b><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman";color:blue'>个数</span><span lang=EN-US
style='color:blue'>*2 + 2</span></b><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>,线程数会随着业务量的大小相应地发生变化,在业务繁忙时,线程池会自动增加工作线程数量;而在业务量较小时,又能够自动释放线程,节省系统开销,达到自动调节的目的。调用</span><span
lang=EN-US>Start</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>函数后,在退出系统时需要相应地调用</span><span
lang=EN-US>Release</span><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>函数进行系统清理工作,释放系统资源,否则可能会造成资源泄漏!</span></p>

<p class=MsoNormal><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>参数说明:</span><span lang=EN-US><o:p></o:p></span></b></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sLocalIP</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>本地监听地址。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>nLocalPort</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>本地监听端口。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sPeerIP</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>网关</span><span lang=EN-US>IP</span><span style='font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>地址。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>nPeerPort</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>网关监听端口。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sLoginName</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>登录用户名。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sLoginPwd</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>登录口令。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>nConnType</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>登录类型。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>sSrcNum</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:</span><span lang=EN-US><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>源节点编号。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>void
(*PDeliver)(DeliverStr<span style="mso-spacerun: yes">&nbsp; </span>deliver)</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:处理</span><span lang=EN-US>Deliver</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>消息的函数指针。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>void
(*PReport)(ReportStr report)</span><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:</span><span
lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>处理</span><span lang=EN-US>Report</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>消息的函数指针。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>void
(*PResponse)(MTRespStr<span style="mso-spacerun: yes">&nbsp; </span>response)</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>:处理</span><span lang=EN-US>MTResponse</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>消息的函数指针。</span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>void
(*PMTError)(MTErrorStr mterror)</span><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>:处理</span><span
lang=EN-US>Submit</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>失败的函数。</span></p>

<p class=MsoNormal><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>返回值:</span><span lang=EN-US><o:p></o:p></span></b></p>

<p class=MsoNormal style='margin-left:42.0pt;text-indent:-21.0pt;mso-list:l1 level2 lfo2;
tab-stops:list 42.0pt'><![if !supportLists]><span lang=EN-US>0<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>调用成功</span></p>

<p class=MsoNormal style='margin-left:42.0pt;text-indent:-21.0pt;mso-list:l1 level2 lfo2;
tab-stops:list 42.0pt'><![if !supportLists]><span lang=EN-US>1<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>已经调用过该函数</span></p>

<p class=MsoNormal style='margin-left:21.0pt'><span lang=EN-US>-1<span
style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>调用失败</span></p>

<h3 style='margin-left:24.0pt;text-indent:-24.0pt;mso-list:l0 level2 lfo1;
tab-stops:list 24.0pt'><![if !supportLists]><span lang=EN-US>1.2<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span><![endif]><span
lang=EN-US>Release</span></h3>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;mso-bidi-font-size:
12.0pt'>void Release()<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>调用过</span><span lang=EN-US>Start</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>函数以后,相应地需要调用</span><span lang=EN-US>Release</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>函数释放系统资源。</span></p>

<h3 style='margin-left:24.0pt;text-indent:-24.0pt;mso-list:l0 level2 lfo1;
tab-stops:list 24.0pt'><![if !supportLists]><span lang=EN-US>1.3<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span><![endif]><span
lang=EN-US>SendMT</span></h3>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;mso-bidi-font-size:
12.0pt'>void<span style='mso-tab-count:1'> </span>Submit(sgipg_submit ss)<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>提交</span><span
lang=EN-US>Submit</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>消息,调用线程池工作线程进行</span><span lang=EN-US>Submit</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>消息发送工作。发送失败的情况下,如果在</span><span lang=EN-US>Start</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>函数中传入</span><span lang=EN-US>Submit</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>失败处理函数指针的话,,将调用</span><span lang=EN-US>MTError</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>函数进行错误处理;如果传入</span><span lang=EN-US>NULL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>的话,将不处理</span><span lang=EN-US>Submit</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>失败消息。</span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US>MTError</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>结构说明:</span></p>

<p class=MsoNormal><span lang=EN-US>typedef struct mterrorstr</span></p>

<p class=MsoNormal><span lang=EN-US>{</span></p>

<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US>unsigned int<span
style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>nSrcNum;<span
style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span></p>

<p class=MsoNormal><span lang=EN-US><span style="mso-spacerun:
yes">&nbsp;&nbsp; </span><span style='mso-tab-count:1'> </span>unsigned int<span
style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>nDateTime;<span

⌨️ 快捷键说明

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