當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]本短信網(wǎng)關(guān)系統(tǒng)由PC機(jī)和WiFi智能手機(jī)組成,PC機(jī)與WiFi智能手機(jī)之間通過(guò)自定義的通信協(xié)議進(jìn)行數(shù)據(jù)通信。

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

1 校園短信網(wǎng)關(guān)的結(jié)構(gòu)

1.1 物理結(jié)構(gòu)

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

1.2 邏輯結(jié)構(gòu)

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

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

2.1 短信發(fā)送

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

2.2 短信接收

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

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

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

3 客戶端PC機(jī)與手機(jī)通信協(xié)議的設(shè)計(jì)

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

3.1 建立連接階段

(1)客戶端請(qǐng)求連接

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

(2)服務(wù)器端響應(yīng)

服務(wù)器首先驗(yàn)證用戶是否合法,若驗(yàn)證合法,則服務(wù)器為該用戶隨機(jī)生成一個(gè)15位的連接Session-ID,并將該Session-ID發(fā)送給客戶端,在后續(xù)的數(shù)據(jù)傳輸階段和會(huì)話結(jié)束階段,客戶端發(fā)送的請(qǐng)求信息中都應(yīng)包含Session-ID,以驗(yàn)證用戶在一次協(xié)議傳輸?shù)暮戏ㄐ浴?br />SMS/1.0 100OK\r\n 連接成功的標(biāo)識(shí)
Content-Type:application/smsc\r\n 內(nèi)容的類型,包括文本內(nèi)容傳輸和SMS控制協(xié)議傳輸
Content-Length:0\r\n 內(nèi)容長(zhǎng)度,應(yīng)大于等于0,小于等于自定義協(xié)議的長(zhǎng)度最大值
Session-ID: 68a354de789ecef\r\n\n 服務(wù)器隨機(jī)產(chǎn)生的15位ID
若驗(yàn)證不合法,則服務(wù)器返回不合法的類型。
SMS/1.0 Error100\r\n Error100表示錯(cuò)誤類型

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

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

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

POST SMS/1.0\r\n
Session-ID: 68a354de789ecef\r\n
User-Agent:SMS Client Release 145\r\n
Date:2009-09-10 10:00:00\r\n
Message-Type:IMMEDIATE,GROUP\r\n
From: <sms:192.168.0.1:8868;username=stone>\r\n
To: 13636066060,13476240028,13884053687\r\n
Content:Happy Teachers’Day!\r\n
Content-Type:application/text\r\n
Content-Length:N\r\n\r\n

(2)服務(wù)器反饋信息:

如果服務(wù)器處理失敗,則返回錯(cuò)誤編號(hào):
SMS/1.0 Error400\r\n
如果服務(wù)器處理成功,則返回成功信息編號(hào):
SMS/1.0 200OK\r\n

3.3 會(huì)話結(jié)束階段

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

(1)客戶端超時(shí)

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

(2)客戶端發(fā)起會(huì)話結(jié)束請(qǐng)求

客戶端發(fā)送:
BYE SMS/1.0\r\n 表示結(jié)束會(huì)話的標(biāo)識(shí)
Session-ID: 68a354de789ecef\r\n\r\n
服務(wù)器反饋:
SMS/1.0 200OK\r\n 表示會(huì)話結(jié)束成功
Session-ID: 68a354de789ecef\r\n\r\n

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉