智能手機校園短信網關系統的設計
大小:0.4 MB 人氣: 2017-10-31 需要積分:1
1 校園短信網關的結構
1.1 物理結構
本校園短信網關系統主要由客戶端PC機和WiFi手機組成。客戶端PC機通過路由器接到互聯網上,WiFi手機通過無線路由器接到互聯網上,客戶端PC機就可以通過網絡與WIFI手機通信,WiFi手機通過GSM網絡與其他用戶手機通信。實現了客戶端PC機通過WiFi手機作為短信網關與手機用戶之間的通信。校園短信網關的物理結構圖如圖1所示。
1.2 邏輯結構
校園短信網關客戶端包括調用接口、通信協議封裝與解析、SocketClient三部分。短信網關采用向上層系統提供調用接口,上層其它系統通過調用接口,向請求中心發送請求(發送短信和接收短信)。在收到上層調用命令后,請求中心將請求命令封裝成自定義的通信協議,通過SocketClient將請求發送給短信網關服務器。
校園短信網關服務器的SocketServer監聽端口狀態,監聽到客戶端發送的命令后,就通過通信協議解析模塊將命令解析,之后調用Windows Mobile SDK提供的手機底層API執行相應的功能。校園短信網關的邏輯結構圖如圖2所示。
2 短信收發功能的設計與實現
2.1 短信發送
校園短信網關系統的客戶端調用短信網關接口,設置收信用戶號碼、短信內容、發送方式、發送時間等信息,達到向目的用戶發送短信的功能。其中,發送方式分單發和群發;發送時間分立即發送和定時發送。
校園短信網關系統發送短信過程如圖3所示。用戶在客戶端PC機上設置短信發送信息,提交給請求中心,請求中心將短信信息封裝后通過Socket發送給服務器。短信網關服務器收到短信發送請求信息后,根據發送時間的不同分為兩種不同的處理流程。如果短信發送信息中的發送方式是立即發送,則直接調用短信發送服務將短信發送到目的手機號碼;如果是定時發送,則將短信發送信息寫入數據庫的定時任務表中。系統設置定時器,每隔一段時間查詢該數據庫的定時任務表,發現定時任務的時間到了,則將該條短信發送出去。例如,定時任務表中的一條記錄為:[時間2009-09-10 10:00:00 手機號碼138********,內容“教師節快樂”],短信網關服務器的定時器掃描任務表時,發現該定時時間到或者超過的時間在允許誤差范圍內,就將該短信發送至目的手機。
2.2 短信接收
用戶可以在客戶端通過短信網關服務器接收來自不同手機用戶發送的短信,達到不同的效果(例如學校師生互動短信、校園活動投票、選舉投票,節日祝福等)。
根據短信接收的功能需求將接收方式分為4種:(1)查看所有收到的短信,類似于手機的收件箱,用戶可以查看收到的所有短信;(2)查看一段時間內所有收到的短信。用戶在客戶端設置起始時間和結束時間,向服務器發送請求該時間段內的所有短信。例如,用戶設置了短信投票活動,在活動截至后,需要統計投票結果時,用戶向服務器請求接收所有投票短信內容;(3)查看所有未被查收短信;(4)查看數據庫接收短信日志表中沒有被查收的短信記錄。
用戶在PC機客戶端接收短信實現的過程如圖4所示,在短信網關服務器上設置一個用戶信息配置表,該表包含用戶名、密碼和對應字頭。服務器則將所有接收的短信存儲在短信接收日志表中。用戶在客戶端向服務器發出查收短信請求,服務器在用戶信息配置表表根據用戶名查找該用戶對應的字頭,然后在短信接收日志表中根據字頭查看短信,將所有符合該用戶要求的短信封裝后發送給用戶。
3 客戶端PC機與手機通信協議的設計
校園短信網關服務器與客戶端用UDP包進行通信。UDP數據包的總長度為65 535 B,可以放進一個IP包,使得UDP/IP協議棧的實現非常簡單、高效。UDP數據包的總長度減去UDP包頭本身所占的8 B,UDP服務中的最大有效載荷長度為65 527 B。當傳輸的數據大于65 527 B時,應將數據包分為幾個小于65 527字節數據包來傳輸。校園短信網關服務器與客戶端之間的通信協議分為三個部分:建立連接階段,數據傳輸階段和會話結束階段。
3.1 建立連接階段
(1)客戶端請求連接
CONNECT SMS/1.0\r\n
表示發出連接請求,自定義的協議類型和版本號
From:《sms:192.168.0.1:8868;username=stone;password
=123456》\r\n
表示發送用戶的IP地址端口,用戶名和密碼
User-Agent:SMS Client Release 145\r\n\n
表示客戶端的名稱和版本
(2)服務器端響應
服務器首先驗證用戶是否合法,若驗證合法,則服務器為該用戶隨機生成一個15位的連接Session-ID,并將該Session-ID發送給客戶端,在后續的數據傳輸階段和會話結束階段,客戶端發送的請求信息中都應包含Session-ID,以驗證用戶在一次協議傳輸的合法性。
SMS/1.0 100OK\r\n 連接成功的標識
Content-Type:application/smsc\r\n 內容的類型,包括文本內容傳輸和SMS控制協議傳輸
Content-Length:0\r\n 內容長度,應大于等于0,小于等于自定義協議的長度最大值
Session-ID: 68a354de789ecef\r\n\n 服務器隨機產生的15位ID
若驗證不合法,則服務器返回不合法的類型。
SMS/1.0 Error100\r\n Error100表示錯誤類型
3.2 數據傳輸階段
根據校園短信網關系統的功能需求來定義數據傳輸的方式,每種方式定義一種通信協議的標識符,例如即時發送的標識符為POST,以即時發送為例說明數據傳輸階段的協議內容。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%