輕鬆學習C 開發CMPP2 0協議閘道器 3

2021-06-05 20:49:00 字數 1393 閱讀 8973

登入應答協議包定義

欄位名

位元組數

屬性描述

status 1

unsigned integer 狀態

0:正確

1:訊息結構錯

3:認證錯

4:版本太高

5~ :其他錯誤

authenticatorismg 16

octet string

ismg認證碼,用於鑑別ismg。

其值通過單向md5 hash計算得出,表示如下:

authenticatorismg =md5(status+authenticatorsource

+shared secret),shared secret 由中國移動與源位址實體事先商定,authenticatorsource為源位址實體傳送給ismg的對應訊息cmpp_connect中的值。

認證出錯時,此項為空。

version 1

unsigned integer

伺服器支援的最高版本號

訊息體長度:1+16+1=18

登入協議包傳送後,獲取登入應答協議包內容,並解析。

mobileconnectresp.cs

public mobileconnectresp(byte sb)

public void frombytes(byte sb)

uint status;

///

public uint status

set}

uint version;

/// /// 伺服器支援的最高版本號,對於3.0的版本,高4bit為3,低4位為0

///

public uint version

set}

string authenticatorismg;

/// /// ismg認證碼,用於鑑別ismg。

///

public string authenticatorismg

set}

獲取到應答訊息後,首先拆分訊息頭,然後拆分訊息體。

byte retxt = new byte[10240];

int index = 0;

index = clientsocket.receive(retxt);

mobilemessagetitle header = new mobilemessagetitle(retxt);

header.commandid;//訊息型別

mobileconnectresp conr = new mobileconnectresp(retxt);

conr.status;//登入狀態

輕鬆學習C 開發CMPP2 0協議閘道器 2

登入協議包定義 訊息體包括 欄位名 位元組數屬性 描述 source addr 6 octet string 源位址,此處為sp id,即sp的企業 authenticatorsource 16 octet string 用於鑑別源位址。其值通過單向md5 hash計算得出,表示如下 authent...

協議開發 中移動CMPP2 0協議API(四)

接上篇 八 鏈路檢測 根據 cmpp 協議當鏈路檢測包發出超過時間 t後未收到響應,應立即再傳送鏈路檢測包,再連續傳送 n 1次後仍未得到響應則斷開此連線,並根據需要重新建立鏈結 t 60 秒,n 3 但也可以加快鏈路檢測的速度 這個並不影響 api的正常執行 要鏈路檢測測試 鏈路是每 30秒傳送一...

cmpp2 0長簡訊的處理方案

長簡訊處理方案 上次寫過對簡訊傳送的處理,並沒有體現出對長簡訊的處理方案,在實際應用中發現了以下問題,對於簡訊長度超過指定的大小時會出現截短的現象.1 這種方案是處理長簡訊的方式 可以實現向客戶端傳送的連續的多條簡訊合併成一條在客戶端的手機上顯示 華為簡訊傳送類處理 公用類 param 簡訊類,包括...