接上篇:
八、鏈路檢測
根據
cmpp
協議當鏈路檢測包發出超過時間
t後未收到響應,應立即再傳送鏈路檢測包,再連續傳送
n-1次後仍未得到響應則斷開此連線,並根據需要重新建立鏈結(
t=60
秒,n=3
)。但也可以加快鏈路檢測的速度;這個並不影響
api的正常執行: //
要鏈路檢測測試
( 鏈路是每
30秒傳送一次資料
)if( _pscoket->_needacttest > 0 || _pscoket->_lastacttime <= ( time( null ) - 30 ))
//鏈路檢測線程部分**:
if( waitforsingleobject( _pscoket->_hevnt_acti, _pscoket->_dwmsec ) == wait_object_0 )
catch( ... )
//根據傳送鏈路檢測結果來作進一步動作
if( err != 0 )
致此,我基本上已把整個
cmpp
協議的開發過程寫完,中間還附帶了部分**,希望對大家有所幫助,如果有什麼不明的也可以直接寫郵件到我的郵箱
,我將為你解答一些
cmpp
九、簡訊二次開發
另外對於沒有申請到移動或聯通簡訊介面的使用者,可以通過提供的一套
api介面,可以快速的通過此
api介面傳送簡訊息:開發包包括以下內容:
目錄名子目錄名
檔名功能說明
bgapi
exam_bc
bcb例程
exam_vc
vc例程
funcdef.cpp
動態庫呼叫
cpp檔案
funcdef.h
動態庫呼叫h檔案
bgapi.dll
動態庫簡訊
api客戶端開發使用說明
.doc
說明文件
www.ebase168.com
api,使用者還可以自已做乙個企業伺服器,再下帶
10萬個客戶端
,這樣去開發自己的客戶群。
開發所要的幾個介面的定義:
函式名:_ifinitinte***ce()
功能:完成初始化的工作;
1)、系統資源的初始化:系統資源的建立和設定;定時資源的設定;通訊訊息機制的設定;記憶體管理的初始化設定;
2)、通訊引數初始化:包括伺服器端
ip位址;客戶端器端
ip位址;通訊埠號;
3)、嘗試連線;
返回:0
成功1
引數fcltdeliver
不能為空
2 引數
fcltsmsstatus
不能為空
3 初始化異常
99 系統錯誤
說明:
引數中的所要的**函式用於在接收到中心伺服器下發的簡訊或簡訊狀態是呼叫,使用者應在接收到後,把資訊儲存後盡快返回乙個
0表示成功接收到簡訊或狀態,不要在**函式中直接處理資訊或狀態,以免影響接收的速度;**函式的定義請參見
funcdef.h
中的定義;
函式名:_login()
功能:完成向中心伺服器註冊的工作;
1)、檢測使用者引數是否正確;
2)、向中心伺服器發出乙個註冊指令;
返回:0
登入已提交
1 未初始化
2 企業**
<= 0
3 使用者名稱
<= 0
函式名:_submit()
功能:向中心伺服器提交一條簡訊息;
1)、檢測使用者提交的引數是否正確;
2)、向中心伺服器發出簡訊提交指令;
說明:返回:0
提交成功
1 未初始化
2 未註冊
3 註冊接收位址有誤
4 原始編碼
<= 0
5 源位址含有非法字元(只能空或數字)
6 源位址長度
> 5
7 目標位址含有非法字元(只能數字)
8 目標位址
< 11
9 編碼
< 0
10 資料長度
<= 0
11 中文
> 65
個字元或
英文》 130
個字元12
流量限制
<= 100條/
秒13傳送失敗
函式名:tprocgetdeliver()
功能:用來接收中心伺服器下發的簡訊;
1)、接收簡訊息;
返回:0
客戶端成功接收
說明:
**函式用於在接收到中心伺服器下發的簡訊,使用者應在接收到後,把資訊儲存後盡快返回乙個
0表示成功接收到簡訊,不要在**函式中直接處理資訊,以免影響接收的速度;**函式的定義請參見
funcdef.h
中的定義;
函式名:tprocgetsmsstatus()
功能:用來接收中心伺服器下發的狀態;
1)、接收註冊回應;
2)、接收通訊測試狀態
3)、接收提交簡訊返回狀態
4)、接收簡訊回應狀態
返回:0
客戶端成功接收
說明:
**函式用於在接收到中心伺服器下發的狀態,使用者應在接收到後,把資訊儲存後盡快返回乙個
0表示成功接收到狀態,不要在**函式中直接處理資訊,以免影響接收的速度;**函式的定義請參見
funcdef.h
中的定義;
輕鬆學習C 開發CMPP2 0協議閘道器 2
登入協議包定義 訊息體包括 欄位名 位元組數屬性 描述 source addr 6 octet string 源位址,此處為sp id,即sp的企業 authenticatorsource 16 octet string 用於鑑別源位址。其值通過單向md5 hash計算得出,表示如下 authent...
輕鬆學習C 開發CMPP2 0協議閘道器 3
登入應答協議包定義 欄位名 位元組數 屬性描述 status 1 unsigned integer 狀態 0 正確 1 訊息結構錯 3 認證錯 4 版本太高 5 其他錯誤 authenticatorismg 16 octet string ismg認證碼,用於鑑別ismg。其值通過單向md5 has...
移動開發 oFono開源電話協議棧
ofono是乙個開源免費的 協議棧軟體,它遵循3gpp27.007等通訊標準,通過at命令與2g 3g modem進行互動,以實現各種 功能 voicecall,gprs,sms,stk等等 在ofono的基礎上,很容易開發用qt,gtk,clutter等api編寫的使用者介面。ofono一般作為守...