<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于智能手機的校園短信網關系統(tǒng)的設計與實現(xiàn)

          基于智能手機的校園短信網關系統(tǒng)的設計與實現(xiàn)

          作者: 時間:2010-11-05 來源:網絡 收藏

          隨著信息技術的高速發(fā)展,校園中教務人員、教師以及學生之間的交流也將信息化。網絡的快速發(fā)展已經為校園里的交流提供了快捷的渠道,但是還不能達到即時信息交流的效果。手機短消息服務提供了隨身攜帶即時信息交流的功能,二者結合起來,PC機通過網絡與手機通信。本文提出的校園短信網關系統(tǒng),將為校園教務人員、教師和學生提供了更加方便的交流平臺。

          1 校園短信網關的結構

          1.1 物理結構

          本校園短信網關系統(tǒng)主要由客戶端PC機和手機組成??蛻舳薖C機通過路由器接到互聯(lián)網上,手機通過無線路由器接到互聯(lián)網上,客戶端PC機就可以通過網絡與WIFI手機通信,手機通過GSM網絡與其他用戶手機通信。實現(xiàn)了客戶端PC機通過WiFi手機作為短信網關與手機用戶之間的通信。校園短信網關的物理結構圖如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/257905.htm

          1.2 邏輯結構

          校園短信網關客戶端包括調用接口、通信協(xié)議封裝與解析、SocketClient三部分。短信網關采用向上層系統(tǒng)提供調用接口,上層其它系統(tǒng)通過調用接口,向請求中心發(fā)送請求(發(fā)送短信和接收短信)。在收到上層調用命令后,請求中心將請求命令封裝成自定義的通信協(xié)議,通過SocketClient將請求發(fā)送給短信網關服務器。
          校園短信網關服務器的SocketServer監(jiān)聽端口狀態(tài),監(jiān)聽到客戶端發(fā)送的命令后,就通過通信協(xié)議解析模塊將命令解析,之后調用Windows Mobile SDK提供的手機底層API執(zhí)行相應的功能。校園短信網關的邏輯結構圖如圖2所示。

          2 短信收發(fā)功能的設計與實現(xiàn)

          2.1 短信發(fā)送

          校園短信網關系統(tǒng)的客戶端調用短信網關接口,設置收信用戶號碼、短信內容、發(fā)送方式、發(fā)送時間等信息,達到向目的用戶發(fā)送短信的功能。其中,發(fā)送方式分單發(fā)和群發(fā);發(fā)送時間分立即發(fā)送和定時發(fā)送。
          校園短信網關系統(tǒng)發(fā)送短信過程如圖3所示。用戶在客戶端PC機上設置短信發(fā)送信息,提交給請求中心,請求中心將短信信息封裝后通過Socket發(fā)送給服務器。短信網關服務器收到短信發(fā)送請求信息后,根據(jù)發(fā)送時間的不同分為兩種不同的處理流程。如果短信發(fā)送信息中的發(fā)送方式是立即發(fā)送,則直接調用短信發(fā)送服務將短信發(fā)送到目的手機號碼;如果是定時發(fā)送,則將短信發(fā)送信息寫入數(shù)據(jù)庫的定時任務表中。系統(tǒng)設置定時器,每隔一段時間查詢該數(shù)據(jù)庫的定時任務表,發(fā)現(xiàn)定時任務的時間到了,則將該條短信發(fā)送出去。例如,定時任務表中的一條記錄為:[時間2009-09-10 10:00:00 手機號碼138********,內容“教師節(jié)快樂”],短信網關服務器的定時器掃描任務表時,發(fā)現(xiàn)該定時時間到或者超過的時間在允許誤差范圍內,就將該短信發(fā)送至目的手機。

          2.2 短信接收

          用戶可以在客戶端通過短信網關服務器接收來自不同手機用戶發(fā)送的短信,達到不同的效果(例如學校師生互動短信、校園活動投票、選舉投票,節(jié)日祝福等)。

          根據(jù)短信接收的功能需求將接收方式分為4種:(1)查看所有收到的短信,類似于手機的收件箱,用戶可以查看收到的所有短信;(2)查看一段時間內所有收到的短信。用戶在客戶端設置起始時間和結束時間,向服務器發(fā)送請求該時間段內的所有短信。例如,用戶設置了短信投票活動,在活動截至后,需要統(tǒng)計投票結果時,用戶向服務器請求接收所有投票短信內容;(3)查看所有未被查收短信;(4)查看數(shù)據(jù)庫接收短信日志表中沒有被查收的短信記錄。

          用戶在PC機客戶端接收短信實現(xiàn)的過程如圖4所示,在短信網關服務器上設置一個用戶信息配置表,該表包含用戶名、密碼和對應字頭。服務器則將所有接收的短信存儲在短信接收日志表中。用戶在客戶端向服務器發(fā)出查收短信請求,服務器在用戶信息配置表表根據(jù)用戶名查找該用戶對應的字頭,然后在短信接收日志表中根據(jù)字頭查看短信,將所有符合該用戶要求的短信封裝后發(fā)送給用戶。

          3 客戶端PC機與手機通信協(xié)議的設計

          校園短信網關服務器與客戶端用UDP包進行通信。UDP數(shù)據(jù)包的總長度為65 535 B,可以放進一個IP包,使得UDP/IP協(xié)議棧的實現(xiàn)非常簡單、高效。UDP數(shù)據(jù)包的總長度減去UDP包頭本身所占的8 B,UDP服務中的最大有效載荷長度為65 527 B。當傳輸?shù)臄?shù)據(jù)大于65 527 B時,應將數(shù)據(jù)包分為幾個小于65 527字節(jié)數(shù)據(jù)包來傳輸。校園短信網關服務器與客戶端之間的通信協(xié)議分為三個部分:建立連接階段,數(shù)據(jù)傳輸階段和會話結束階段。

          3.1 建立連接階段

          (1)客戶端請求連接

          CONNECT SMS/1.0rn
          表示發(fā)出連接請求,自定義的協(xié)議類型和版本號
          From:sms:192.168.0.1:8868;username=stone;password
          =123456>rn
          表示發(fā)送用戶的IP地址端口,用戶名和密碼
          User-Agent:SMS Client Release 145rnn
          表示客戶端的名稱和版本

          (2)服務器端響應

          服務器首先驗證用戶是否合法,若驗證合法,則服務器為該用戶隨機生成一個15位的連接Session-ID,并將該Session-ID發(fā)送給客戶端,在后續(xù)的數(shù)據(jù)傳輸階段和會話結束階段,客戶端發(fā)送的請求信息中都應包含Session-ID,以驗證用戶在一次協(xié)議傳輸?shù)暮戏ㄐ浴?br />SMS/1.0 100OKrn 連接成功的標識
          Content-Type:application/smscrn 內容的類型,包括文本內容傳輸和SMS控制協(xié)議傳輸
          Content-Length:0rn 內容長度,應大于等于0,小于等于自定義協(xié)議的長度最大值
          Session-ID: 68a354de789ecefrnn 服務器隨機產生的15位ID
          若驗證不合法,則服務器返回不合法的類型。
          SMS/1.0 Error100rn Error100表示錯誤類型

          3.2 數(shù)據(jù)傳輸階段

          根據(jù)校園短信網關系統(tǒng)的功能需求來定義數(shù)據(jù)傳輸?shù)姆绞?,每種方式定義一種通信協(xié)議的標識符,例如即時發(fā)送的標識符為POST,以即時發(fā)送為例說明數(shù)據(jù)傳輸階段的協(xié)議內容。

          (1)客戶端發(fā)送:

          POST SMS/1.0rn
          Session-ID: 68a354de789ecefrn
          User-Agent:SMS Client Release 145rn
          Date:2009-09-10 10:00:00rn
          Message-Type:IMMEDIATE,GROUPrn
          From: sms:192.168.0.1:8868;username=stone>rn
          To: 13636066060,13476240028,13884053687rn
          Content:Happy Teachers’Day!rn
          Content-Type:application/textrn
          Content-Length:Nrnrn

          (2)服務器反饋信息:

          如果服務器處理失敗,則返回錯誤編號:
          SMS/1.0 Error400rn
          如果服務器處理成功,則返回成功信息編號:
          SMS/1.0 200OKrn

          3.3 會話結束階段

          會話結束有兩種情況,一是客戶端出現(xiàn)異常情況,在規(guī)定時間內沒有反饋信息,則服務器關閉連接銷毀Session-ID;二是客戶端正常,且在一次會話結束后,由客戶端在超時允許范圍之內發(fā)出會話結束請求。

          (1)客戶端超時

          服務器不做任何發(fā)包工作,關閉通信連接,銷毀Session-ID,清除此次會話的相關資源。
          SMS/1.0 Error400rn 表示客戶端超時

          (2)客戶端發(fā)起會話結束請求

          客戶端發(fā)送:
          BYE SMS/1.0rn 表示結束會話的標識
          Session-ID: 68a354de789ecefrnrn
          服務器反饋:
          SMS/1.0 200OKrn 表示會話結束成功
          Session-ID: 68a354de789ecefrnrn

          本文所設計的校園短信網關系統(tǒng)通過無線網絡實現(xiàn)了PC機與手機之間的通信,其重點是通信協(xié)議的定義以及對短信收發(fā)請求和短信內容的封裝與解析。其次,本短信網關系統(tǒng)中調用了Windows Mobile SDK提供的手機短信收發(fā)接口函數(shù),有利于將來校園短信網關系統(tǒng)的功能擴展。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();