亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ~sgipapi.~h

?? SMAL是short message abstract library的縮寫,是由風起水流軟件工作室(www.zealware.com)開發的一個支持短信網關系統開發的C++底層抽象接口庫
?? ~H
?? 第 1 頁 / 共 2 頁
字號:
/**
 *	文件名稱:	SGIP.h
 *	實現功能:	中國聯通短消息業務聯網協議1.2版(sgip1.2 最新0213升級版)頭文件.
 *	文件作者:	PrinceToad(范圣剛,北京風起水流軟件工作室)
 *	軟件聲明:	免費提供SP短消息網關開發接口庫下載使用(CMPP3.0,SGIP1.2,CMPP2.0)
 *	聯系方式:	
 *				Homepage:Http://www.zealware.com
 *				MSN:	princetoad2003@hotmail.com
 *				OICQ:	50506711
 *				Email:	princetoad@gmail.com
 *				PhoneNo:010-13901168061
 *	軟件版本:
 *				Revision V1.70 06/22/2007
 *					1.采用類封裝方式實現SGIPAPI.
 *					2.去掉了MFC類庫的使用.
 *
 *				V1.61 May.07.06
 *					1.修正了上行連接線程安全的一個Bug.
 *
 *				V1.6 Mar.25.06
 *					1.加入了是否對網關登錄SP的用戶名口令進行驗證的配置和參數。
 *					2.加入了對網關連接SP的最大連接數進行配置的參數。
 *					3.增加了輸出調試日志的接口。
 *					4.增加了允許設定線城池的工作線程數的參數配置。
 *					5.支持輸出SMG到網關的連接的連接數,SOCKET句柄,和遠程端口(可以在外部關閉網關連接).
 *					6.回調函數返回值改為int.(允許在回調函數中返回值)
 *					7.修正了一些BUG.
 *
 *				V1.42 Jul.30.04
 *					1.不對SUBMIT消息的MSGCONTENT長度作限制,原來的長度限制160,現在只要整個消息包不超
 *					過2K就可以.
 *
 *				V1.41 Jul.30.04
 *					1.加入了對MO連接遠程服務器IP地址的判斷,防止非法攻擊!
 *					2.徹底修正了MT斷開重連,再發消息的Bug,MTRESP不會再返回255的錯誤.
 *
 *				V1.4  Jul.19.04
 *					1.修正了一個返回函數指針錯誤的問題。.(Special Thanks mate.)
 *					2.增加了了程序啟動模式,在Start函數里,當指定nLocalPort = -1時,不建立本地監聽,只執行發送模塊;
 *					  當指定nPeerPort = -1時,只進行監聽,接收MO消息,不建立同網關的連接.
 *				V1.36 Jun.07.04
 *					1.修改了多連接分配時候的一個Bug,該Bug能夠導致在流量比較大的時候丟失MT消息。
 *					2.去除了除試用版過期的以外的其他消息提示對話框。
 *					3.Start函數里面加了一個參數fOutputDebugInfo,用來指示是否輸出調試信息,
 *					  如果輸出的話,DLL會在當前目錄下建立一個文本文件debug.log,輸出DLL的相關信息,
 *					  用作調試,出現錯誤情況時可以查看該文件。
 *				V1.34 Apr.13.04
 *					1.修改了接收超時導致丟失MO消息的問題。
 *				V1.33 Mar.30.04
 *					1.根據聯通的最新修改,LinkId字段不作為兩個整數來處理,直接作為8字節的字符串處理。
 *				V1.32 Mar.23.04
 *					1.修改了連接中斷后,重連的一個Bug.
 *				V1.3  Mar.07.04
 *					1.修改了MT消息的發送方式,發送方式由原來的短連接(即一條消息建立一次連接)改為
 *					  現在的長連接,提高了發送效率,減輕了網關負擔。
 *					2.Start()函數增加了一個參數,允許用戶自定義同網關建立的連接數,默認是3
 *					  (網關連接數最好不要超過數值N, N = CPU個數*2 + 2)。
 *				V1.28 Feb.26.04
 *					1.還是根據《SGIPV1.2協議適應性修改0120(SP分冊)》作了相應修改。
 *					2.根據協議變更,修改了Submit, Deliver, deliverstr結構體的定義,增加或者修改了Reserved,linkid字段。
 *					3.修改了MO,MT消息收發函數.
 *				V1.27 Feb.16.04
 *					1.根據《SGIPV1.2協議適應性修改0120(SP分冊)》作了相應修改.
 *				V1.26 Jan.27.04
 *					1.修正了MTError時,mt_err結構提沒有帶回DateTime的錯誤。	
 *				V1.25 Dec.22.03
 *					1.在Submit函數中返回了submit消息包序列號中的時間戳(與Reponse和Report中的時間戳是對應的),
 *					  通過時間戳與序列號的結合徹底解決了序列號唯一對應的問題(哪怕是系統重新啟動).
 *
 *				V1.24 Dec.04.03
 *					1.更正了在接收消息包時未給ReportStr中的nSubmitSeqId字段賦值的錯誤。
 *					2.更正了MTError返回時不能帶回序列號的問題.	
 *					3.在ReportStr字段中加入新的字段unsigned int nSubmitDateTime,用于保存更加詳細的Report內容.
 *
 *				V1.23 Nov.25.03
 *					1.MTErrorStr和MTRespStr兩個消息結構中增加一個sgipg_submit字段,用于返回其對應的SUBMIT消
 *					 息包,即這兩個消息是由哪個SUBMIT包返回的,原因是SubmitResp包中并未包含開發者可能用到的必要信
 *					 息(如手機號碼等,雖然這些信息在Report消息里面包含的比較全面)。
 *
 *				V1.21 Nov.08.03
 *					1.增加了函數CSgip::AddUserNumber(),可以方便地進行短消息群發.
 *					2.增加了函數CSgip::GetSubmitSeqId(),功能是獲得下一條submit消息的序列號.
 *					 在調用Submit()函數前調用可以提前獲得將要發送的submit消息的序列號,類推的話,
 *					 下一條submit消息的序列號將在上一條消息序列號的基礎上加3.這樣的話就可以提前給submit消息編號,
 *					 然后等待submit_resp消息的到來。
 *					3.CSgip::Submit()函數的原型由CSgip::Submit(sgipg_submit ss)變為
 *					 CSgip::Submit(sgipg_submit ss, unsigned int &nSeq),輸出參數nSeq的作用是返回submit消息的序列號.
 *
 *				V1.2  Sep.11.03
 *
 */

#ifndef _SMAL_SGIP_API_H
#define _SMAL_SGIP_API_H

#include <smal.h>
#include <common/threadpool.h>
#include <common/const.h>
#include <sgip/sgip_message.h>

#include <list>
using namespace std;

class CSgip;

///
/// SGIP JOB類
///
class CJobSgip : public IJobDesc {
public:
	CJobSgip(SOCKET &hSocket, CSgip* sgip, unsigned remoteport);
	CJobSgip(sgipg_submit pss, CSgip* sgip, unsigned int nSeq, unsigned int nDateTime);
	~CJobSgip();

	void	RecvMOProc();
	void	SendMTProc();
	int		nType;

private:
	sgip_conn			sp_conn;
	CSgip*				m_sgip;
	sgipg_submit	ss;
	unsigned			m_nSeq;
	unsigned			m_nDateTime;
};

///
///	SGIP WORK類
///
class CWorkerSgip : public IWorker {
	virtual void ProcessJob( IJobDesc* pJobDesc );
};

///
///	 網關連接信息
///
class ConnInfo {
public:
	ConnInfo() {
		socketHandle	= 0;
		port					= 0;
		memset(connectedTime, 0, MAX_PATH);
	}

	ConnInfo(
		unsigned	_socketHandle, 
		unsigned	_port,
		const char * _connectedTime
		) 
	{
			socketHandle	= _socketHandle;
			port					= _port;
#if defined(_MSC_VER)  && _MSC_VER >= 1400
			strcpy_s(connectedTime, MAX_PATH, _connectedTime);
#else
			strcpy(connectedTime, _connectedTime);
#endif
			//strcpy(connectedTime, _connectedTime);
		}

		unsigned	socketHandle;		///< 網關到SP的SOCKET句柄
		unsigned	port;						///< 網關的遠程端口
		char		connectedTime[MAX_PATH];	///< 網關到SP的連接連接時間
};

typedef std::list<ConnInfo>		cList;

///	SGIP網關實現類
class /*SGIP_API*/ CSgip{
	friend class CJobSgip;
public:
	/**@name Construction */
	//@{
	///
	///	構造函數,初始化WinSock,初始化變量值
	///
	CSgip();

	///
	///	析構函數,釋放WinSock
	///
	virtual ~CSgip();
	
	//@}

	/**@name Main Functions */
	//@{
	/**
	* SGIPAPI啟動主函數
	* 在這個函數里面啟動本地監聽,連接網關,和啟動線城池。
	* 注意:
	* 1.在調用Start函數啟動后,如果想重新調用Start函數,
	* 必須首先調用Release函數釋放資源才能重新調用Start函數,否則會調用失敗。
	* 2.可以通過設定nLocalPort=-1,或nPeerPort=-1實現收發分離功能。
	* 
	* @param sLocalIP					SGIP本地監聽地址
	* @param nLocalPort				SGIP的本地監聽端口(注意:如果設為-1則不啟動本地監聽,即不接收網關的連接和消息,只啟用發送功能)
	* @param sPeerIP					聯通網關地址
	* @param nPeerPort				聯通網關端口(注意:如果設為-1,則不連接網關,即不執行發送功能,可以只接收MO消息)
	* @param sLoginName				登錄聯通網關的用戶名
	* @param sLoginPwd				登錄聯通網關的口令
	* @param nConnType				登錄網關的連接類型(按照協議規定,應該一直是1。<1:SP向SMG建立的連接,用于發送命令>)
	* @param sSrcNum					源節點編號(SP的編號規則:3AAAAQQQQQ AAAA表示四位長途區號,QQQQQ表示5位企業代碼。詳見協議3.3)
	* @param nConnCount				同網關建立的發送連接數
	* @param sPeerName				網關登錄SP的用戶名(如果用戶名或者口令為空的話,則不對網關連接進行用戶名口令鑒權)
	* @param sPeerPwd					網關登錄SP的口令
	* @param nMaxSmgConn			允許的網關到SP的最大連接數
	* @param nMinWorkThreadsCount	線程池的最小線程數(即初始線程數,建議為CPU個數*2 + 2)
	* @param nMaxWorkThreadsCount	線程池的最大線程數(建議為CPU個數*2 + 6,線程池會根據忙碌狀態在此范圍內自動調整)
	*
	* @return	0:成功; -1:失敗
	*/
	int Start(
		const char			*sLocalIP, 
		int				nLocalPort,
		const char			*sPeerIP, 
		int				nPeerPort, 
		const char			*sLoginName, 
		const char			*sLoginPwd, 
		int				nConnType, 
		const char			*sSrcNum,
		int				nConnCount = 3, 
		const char			*sPeerName = NULL,
		const char			*sPeerPwd = NULL,
		unsigned	nMaxSmgConn = 16,
		unsigned	nMinWorkThreadsCount = 4,
		unsigned	nMaxWorkThreadsCount = 8
		);

	///
	/// 斷開連接,停止線程池,釋放資源
	///
	void Release(
		BOOL forceRelease = FALSE		///< 如果Start沒有啟動成功,是否強制釋放
	);

	///
	/// 提交MT消息
	///	nDatetime(submit包的時間戳,序列號中的第二個字段),
	/// 與nSeq結合能夠做到唯一標識一條submit消息(即使系統重新啟動,nSeq重新歸零).
	///
	void Submit(
		sgipg_submit	ss,						///< Submit消息包
		unsigned			&nSeq,				///< 該消息包的序列號中的序列號
		unsigned			&nDateTime		///< 該消息包的序列號中的時間戳
	);

	/////
	/////	支持群發的設置目的號碼的函數.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类欧美日韩国产在线| 99视频在线精品| 国产成人夜色高潮福利影视| 91网页版在线| 久久网站热最新地址| 夜夜嗨av一区二区三区网页 | 国产精品 欧美精品| 欧美唯美清纯偷拍| 久久精品在线免费观看| 日本欧美久久久久免费播放网| 高清不卡一区二区| 精品国产乱码久久久久久夜甘婷婷 | 国产成人午夜99999| 欧美日韩二区三区| 亚洲男人天堂av网| 国产成人精品网址| 欧美精品一区二区三区很污很色的| 亚洲午夜久久久| 色综合久久中文字幕| 久久久久国产一区二区三区四区 | 成人精品视频一区二区三区| 日韩免费性生活视频播放| 亚洲国产乱码最新视频 | 国产大陆a不卡| 亚洲精品一区二区三区福利 | 视频在线观看一区| 色综合色狠狠天天综合色| 欧美激情在线观看视频免费| 极品销魂美女一区二区三区| 91精品国产综合久久精品app | eeuss影院一区二区三区| 久久亚洲精品小早川怜子| 亚洲高清一区二区三区| 欧美亚洲禁片免费| 一区二区成人在线| 在线观看日韩电影| 五月天久久比比资源色| 欧美色区777第一页| 一区二区三区四区视频精品免费| 成人精品视频.| 亚洲女女做受ⅹxx高潮| 在线视频欧美精品| 亚洲国产成人av网| 7777精品伊人久久久大香线蕉的 | 亚洲国产精品久久久久婷婷884| 国产91丝袜在线18| 久久久亚洲精华液精华液精华液 | 国产精品 日产精品 欧美精品| 久久综合国产精品| 国产ts人妖一区二区| 国产精品伦理在线| 色婷婷狠狠综合| 偷拍一区二区三区四区| 日韩欧美一级在线播放| 国产精品原创巨作av| 国产精品久久三区| 欧美色窝79yyyycom| 麻豆精品久久精品色综合| 精品久久久久久久人人人人传媒| 国产乱妇无码大片在线观看| 国产女主播视频一区二区| 97se亚洲国产综合在线| 亚洲成人在线观看视频| 精品国产伦一区二区三区免费| 成人av一区二区三区| 亚洲成人久久影院| 国产亚洲成av人在线观看导航| www.亚洲色图| 青青草国产精品亚洲专区无| 国产精品女主播在线观看| 欧美天天综合网| 国产激情精品久久久第一区二区| 亚洲美女在线一区| 精品少妇一区二区三区在线播放 | 男人的天堂亚洲一区| 天天综合天天做天天综合| 久久综合国产精品| 精品视频免费在线| 国产91精品欧美| 免费av网站大全久久| 亚洲日本免费电影| www国产亚洲精品久久麻豆| 色www精品视频在线观看| 国产又黄又大久久| 水野朝阳av一区二区三区| 中文一区在线播放| 欧美电影免费观看高清完整版在| jizz一区二区| 国内一区二区在线| 性久久久久久久久| 亚洲三级在线免费观看| 久久综合九色综合97_久久久| 在线精品视频免费观看| 国产成人午夜精品影院观看视频| 日韩中文字幕一区二区三区| 最近中文字幕一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美视频一区二区| av一区二区三区| 国产·精品毛片| 久久国内精品视频| 青椒成人免费视频| 午夜视频一区在线观看| 亚洲欧美福利一区二区| 国产精品免费久久| 日本一区二区三区电影| 久久久精品天堂| 久久久三级国产网站| 精品国产成人在线影院 | 日韩二区三区在线观看| 亚洲乱码精品一二三四区日韩在线| 久久免费看少妇高潮| 精品第一国产综合精品aⅴ| 日韩一区二区三区电影在线观看 | 亚洲精品成人在线| 亚洲婷婷国产精品电影人久久| 国产午夜精品一区二区三区四区 | 91免费视频网址| 91啪九色porn原创视频在线观看| 成人一级视频在线观看| 成人一区二区三区视频在线观看| 国产成人在线免费| 成人app网站| 日本高清视频一区二区| 91搞黄在线观看| 在线不卡的av| 日韩视频免费直播| 26uuu亚洲综合色| 国产精品美女久久久久aⅴ| 亚洲视频一区在线| 亚洲午夜在线视频| 日韩在线一二三区| 狠狠色狠狠色综合| 成人aa视频在线观看| 色哟哟亚洲精品| 91麻豆精品国产| 精品国产第一区二区三区观看体验| 久久久久久久网| 国产精品久久久99| 色综合欧美在线视频区| 欧美亚洲禁片免费| 欧美va天堂va视频va在线| 国产亚洲综合在线| 有码一区二区三区| 美日韩一区二区| 菠萝蜜视频在线观看一区| 在线一区二区视频| 欧美zozozo| 日韩久久一区二区| 免费在线视频一区| 成人97人人超碰人人99| 欧美精品自拍偷拍| 久久噜噜亚洲综合| 亚洲国产成人91porn| 国产精品一二三四区| 欧美中文字幕不卡| 久久久久久免费网| 亚洲国产精品久久久久婷婷884| 国产呦萝稀缺另类资源| 色美美综合视频| 久久久久国产精品免费免费搜索 | 久久一区二区视频| 一区二区三区电影在线播| 久99久精品视频免费观看| 97超碰欧美中文字幕| 日韩精品最新网址| 亚洲一区二区三区四区在线免费观看 | 国产aⅴ综合色| 国产精品素人一区二区| 亚洲国产综合人成综合网站| 国产成人精品一区二| 欧美一区二区私人影院日本| 成人欧美一区二区三区白人 | 中文字幕av资源一区| 蜜臀久久久99精品久久久久久| 色综合久久久久综合体桃花网| 久久综合色一综合色88| 无吗不卡中文字幕| 色婷婷亚洲婷婷| 国产精品国产精品国产专区不蜜| 欧美aⅴ一区二区三区视频| 欧洲视频一区二区| 一区二区中文视频| 国产99一区视频免费| 26uuu国产日韩综合| 日韩 欧美一区二区三区| 91成人免费在线| 亚洲精品欧美激情| 不卡在线观看av| 日本一区二区三区电影| 激情久久五月天| 精品欧美久久久| 日本成人中文字幕在线视频 | 成人黄色软件下载| 国产拍欧美日韩视频二区| 久久er精品视频| 欧美xingq一区二区| 韩国中文字幕2020精品| 日韩欧美亚洲国产精品字幕久久久| 丝袜诱惑制服诱惑色一区在线观看 |