中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 人物訪談

利用電子郵件實(shí)現(xiàn)與網(wǎng)絡(luò)嵌入式系統(tǒng)的通信

發(fā)布日期:2022-07-15 點(diǎn)擊率:33

ay: block;">

隨著網(wǎng)絡(luò)嵌入式系統(tǒng)應(yīng)用的普及,嵌入式系統(tǒng)之間的通信成為工程師關(guān)注的焦點(diǎn)之一。除了API或HTTP協(xié)議等傳統(tǒng)方式外,電子郵件也可以用來(lái)進(jìn)行數(shù)據(jù)通信,本文描述了一個(gè)用于接收信息的小型SMTP服務(wù)器以及發(fā)送回函的客戶程序來(lái)說(shuō)明電子郵件通信方式的應(yīng)用。

通過(guò)電子郵件來(lái)與網(wǎng)絡(luò)嵌入式系統(tǒng)通信有如下優(yōu)點(diǎn):(1) 用戶接口是日常使用的標(biāo)準(zhǔn)電子郵件客戶程序,對(duì)技術(shù)要求較低;(2) 有現(xiàn)成的協(xié)議用于從各種設(shè)備(桌面電腦、手持設(shè)備及網(wǎng)絡(luò)電話)發(fā)送電子郵件并在因特網(wǎng)上傳輸;(3) 只需稍加處理,便可對(duì)嵌入式設(shè)備上回復(fù)的電子郵件以HTML格式進(jìn)行編碼,使數(shù)據(jù)的表現(xiàn)形式更為豐富和易讀;(4) 電子郵件客戶程序有自己的存檔日志,便于進(jìn)行數(shù)據(jù)歸檔備份。

郵件系統(tǒng)的組成利用電子郵件實(shí)現(xiàn)與網(wǎng)絡(luò)嵌入式系統(tǒng)的通信 - 1

在用因特網(wǎng)發(fā)送郵件時(shí),我們使用郵件用戶代理(MUA)與本地的郵件傳輸代理(MTA)進(jìn)行通信,后者則將電子郵件傳送給目標(biāo)MTA。目標(biāo)MTA通過(guò)一個(gè)本地投遞服務(wù)器(如POP3)將電子郵件傳送給接收MUA,如圖1所示。

客戶與MTA間傳送電子郵件的協(xié)議稱為簡(jiǎn)單郵件傳輸協(xié)議(SMTP),它的具體條款可在RFC-821中找到。目的MTA接收到郵件,該郵件暫存在接收系統(tǒng)上,郵件接收者可通過(guò)POP3將之收集下來(lái)(郵局協(xié)議)。通過(guò)郵局協(xié)議可避免在每個(gè)需要接收郵件的節(jié)點(diǎn)上建立一個(gè)SMTP服務(wù)器。

協(xié)議會(huì)話示例

SMTP是一種其于ASCII的簡(jiǎn)單協(xié)議,可通過(guò)標(biāo)準(zhǔn)的遠(yuǎn)程登錄客戶程序執(zhí)行。MTA寄存在端口25上,程序1是一段與稱為Sendmail(紅色顯示部分為用戶輸入)標(biāo)準(zhǔn)MTA的互動(dòng)會(huì)話示例。

通過(guò)遠(yuǎn)程登錄打開(kāi)一個(gè)Socket會(huì)話后,先通過(guò)HELO指令表明身份,然后再通過(guò)MMAIL FROM指令告知MTA郵件從何而來(lái),并通過(guò)RCPT TO指令表明郵件去向何處。最后,發(fā)出DATA指令指示MTA以下文本內(nèi)容是電子郵件的正文。在正文中輸入內(nèi)容后,通過(guò)一個(gè)簡(jiǎn)單的“.”來(lái)結(jié)束郵件,這個(gè)符號(hào)獨(dú)占一行。這時(shí)MTA便準(zhǔn)備將電子郵件發(fā)送給指定姓名的接收者。

這個(gè)示例所用功能極少,但作為例子已經(jīng)足夠了。它表明MTA只是一個(gè)特殊的命令解釋器。當(dāng)所有的命令都向MTA發(fā)出后,會(huì)返回一個(gè)數(shù)字響應(yīng)代碼,以便知道是否執(zhí)行成功。此外還有多種協(xié)議了采用這種模式,包括POP3和網(wǎng)絡(luò)新聞傳輸協(xié)議(NNTP)。

簡(jiǎn)單SMTP服務(wù)器和客戶實(shí)現(xiàn)利用電子郵件實(shí)現(xiàn)與網(wǎng)絡(luò)嵌入式系統(tǒng)的通信 - 2

以下是一個(gè)適用于嵌入式系統(tǒng)的簡(jiǎn)單實(shí)現(xiàn)。這個(gè)實(shí)現(xiàn)的目的是在SMTP傳輸系統(tǒng)中開(kāi)發(fā)一個(gè)命令-響應(yīng)協(xié)議。服務(wù)器接收一個(gè)電子郵件,然后對(duì)它進(jìn)行語(yǔ)法分析,找出其中的指令(這種情況下,這個(gè)指令位于電子郵件的標(biāo)題欄中)。如果指令合法,就調(diào)用一個(gè)處理程序產(chǎn)生電子郵件的響應(yīng),該響應(yīng)傳送到客戶實(shí)現(xiàn)上,然后傳輸回去給用戶。整個(gè)系統(tǒng)如圖2所示。

嵌入式SMTP服務(wù)器的組件和客戶與圖1所示的傳統(tǒng)圖形有所不同。客戶MUA配置了一個(gè)SMTP網(wǎng)關(guān)(發(fā)出郵件服務(wù)器)作為嵌入式器件的地址(由于服務(wù)器既充當(dāng)MTU又充當(dāng)自動(dòng)MUA)。嵌入式客戶采用SMTP GATEWAY #define(程序1)來(lái)定義從何處發(fā)送響應(yīng)電子郵件。

實(shí)現(xiàn)過(guò)程

主要功能(可從獲得完整的源代碼)提供了基本的服務(wù)器插座設(shè)置以便郵件連接。將插座綁定到端口25,即SMTP服務(wù)的標(biāo)準(zhǔn)端口。然后執(zhí)行一個(gè)循環(huán)等待連接,當(dāng)有客戶連接時(shí)調(diào)用MailReceive函數(shù)。為了簡(jiǎn)化實(shí)現(xiàn),一次只處理一個(gè)連接。

MailReceive函數(shù)實(shí)現(xiàn)SMTP協(xié)議的服務(wù)器端功能,如實(shí)例程序2所示。MailReceive函數(shù)中的第一步是將初始化標(biāo)志發(fā)送給客戶程序,然后等待其響應(yīng)。接著順序等待接收“MAIL利用電子郵件實(shí)現(xiàn)與網(wǎng)絡(luò)嵌入式系統(tǒng)的通信 - 3

FROM”、“RCPT TO”及“DATA”命令,并存儲(chǔ)結(jié)果及發(fā)送相應(yīng)的返回碼。

接收郵件正文的操作十分簡(jiǎn)單,只需將收到的字符緩存起來(lái),直到接收到一個(gè)特殊的字符序列為止。客戶程序發(fā)送“.”(即該行只有一個(gè)“.”)表明郵件結(jié)束。這就表明消息已結(jié)束,并等待客戶發(fā)出“QUIT”命令。

這時(shí)存放郵件內(nèi)容的字符串?dāng)?shù)組中已接收到整個(gè)郵件原文。然后調(diào)用mailParse函數(shù)分析該數(shù)組,找出相關(guān)指令。

程序2中給出了mailParse函數(shù)的實(shí)現(xiàn)。該函數(shù)首先檢索“Subject:”字符串,如果找到則存儲(chǔ)相應(yīng)的標(biāo)題內(nèi)容。然后將標(biāo)題串與目標(biāo)所支持的命令(PING、SENSOR和RESET)相比較,并調(diào)用相應(yīng)的處理函數(shù)。

實(shí)例代碼中每個(gè)處理函數(shù)都包含了相同的基本處理過(guò)程。首先分配一個(gè)郵件標(biāo)題結(jié)構(gòu),根據(jù)希望提供的響應(yīng)填入該結(jié)構(gòu)的相關(guān)字段,然后調(diào)用mailSend函數(shù)發(fā)送郵件(參見(jiàn)示例程序3)。sendResponse 和processCommand函數(shù)的功能十分顯而易見(jiàn)。

函數(shù)sendSensorData略有不同,它發(fā)送的是HTML格式的文本。除了郵件正文不同外,其內(nèi)容類型標(biāo)志也不同:普通正文的內(nèi)容標(biāo)志為“text/plain”,而HTML格式的內(nèi)容標(biāo)志為“text/html”,表示郵件中可能包含HTML標(biāo)記。這些處理程序十分簡(jiǎn)單,但可以進(jìn)行擴(kuò)展以支持任何電子郵件客戶程序所允許的嵌入標(biāo)記(包括圖象、聲音等數(shù)據(jù)的傳輸)。程序2:SMTP服務(wù)器。(點(diǎn)擊放大圖)

MailSend函數(shù)實(shí)現(xiàn)SMTP客戶端的協(xié)議處理。這基本上是服務(wù)器端代碼的反向處理。

另外值得注意的是客戶報(bào)頭文件,它定義了mailHeader結(jié)構(gòu)(見(jiàn)實(shí)例程序1)。該結(jié)構(gòu)中多數(shù)的字段都一目了然,其中一個(gè)特殊的字段是specialHeaders。如果電子郵件客戶程序把郵件中所有的標(biāo)題域都顯示出來(lái),將發(fā)現(xiàn)許多不常見(jiàn)的內(nèi)容,多數(shù)都可在IETF的“通用互連網(wǎng)消息標(biāo)題”(RFC-2076)文檔中找到。通過(guò)specialHeaders字段可調(diào)整電子郵件的處理。例如可采用“Priority: Urgent”標(biāo)題注明郵件的重要性,或采用“Content-MD5:”標(biāo)題(以及相應(yīng)的校驗(yàn)碼)來(lái)保證在傳遞過(guò)程中郵件的內(nèi)容未發(fā)生改變。

測(cè)試設(shè)置

實(shí)例代碼可在Linux上直接編譯并運(yùn)行。編譯前必須先配置兩個(gè)參數(shù)程序才能正常運(yùn)行(在client.h文件中)。

第一個(gè)參數(shù)是SMTP GATEWAY宏定義,它設(shè)定嵌入式SMTP客戶程序發(fā)送電子郵件的目標(biāo),一般是用戶有發(fā)送或接收帳號(hào)的SMTP網(wǎng)關(guān),或者是提供電子郵件中轉(zhuǎn)服務(wù)的網(wǎng)關(guān)。該參數(shù)可設(shè)為一個(gè)IP地址或一個(gè)域名(mailSend函數(shù)中的代碼具備域名解析功能)。

第二個(gè)可配置的參數(shù)是SOURCE_E-MAIL_ADDRESS,該參數(shù)并不十分關(guān)鍵,它表示回復(fù)郵件中“From:”字段的內(nèi)容(即發(fā)送方的標(biāo)志)。這些參數(shù)設(shè)置好以后,只需簡(jiǎn)單地“Make”就可生成“Tinyms”可執(zhí)行程序鏡像。程序3:電子郵件信息剖析器。(點(diǎn)擊放大圖)

發(fā)出郵件的電子郵件桌面程序必須將其SMTP網(wǎng)關(guān)(或發(fā)送服務(wù)器)配置為嵌入式設(shè)備的IP地址。當(dāng)用軟件發(fā)送電子郵件時(shí),無(wú)論接收方在哪里,郵件都要首先經(jīng)過(guò)預(yù)先設(shè)好的SMTP網(wǎng)關(guān)(即嵌入式設(shè)備)。嵌入式設(shè)備并不關(guān)心地址,它只是處理所有收到的郵件,并把回復(fù)內(nèi)容傳給發(fā)送方。注意標(biāo)題域(Subject:)的內(nèi)容是要執(zhí)行的命令(如SENSOR或者PING)。在列舉的實(shí)現(xiàn)中忽略了郵件的正文,但只需稍加修改舊可對(duì)正文進(jìn)行處理,因?yàn)檎麄€(gè)郵件的原文都存放在字符數(shù)組中。

本文小結(jié)

現(xiàn)在可以向嵌入式設(shè)備發(fā)送電子郵件并獲得響應(yīng)了,但這只是一個(gè)最基本的配置,它給傳統(tǒng)的通信模式提供了一種有趣的替代。我們可對(duì)這一實(shí)現(xiàn)進(jìn)行多種擴(kuò)展,例如支持在電子郵件正文中嵌入XML消息(通過(guò)某種XML分析器);還可通過(guò)在接收或發(fā)送的郵件中附加Base64或“Quoted-Printable MIME”編碼/解碼處理功能來(lái)支持二進(jìn)制附件。利用后者可提供向嵌入式設(shè)備發(fā)送軟件更新或接收采集的二進(jìn)制數(shù)據(jù)的功能(在傳統(tǒng)的圖像等多媒體數(shù)據(jù)之外)。最后,不用任何額外的改變,就可由嵌入式設(shè)備在異常情況下發(fā)送電子郵件報(bào)警。

作者簡(jiǎn)介:

M. Tim Jones是Emulex公司的軟件工程師。他從1986年到現(xiàn)在一直從事嵌入式軟件開(kāi)發(fā),其范圍十分廣泛,從航空設(shè)備的操作系統(tǒng)內(nèi)核到地面嵌入式網(wǎng)絡(luò),無(wú)所不及。Tim獲得了計(jì)算機(jī)科學(xué)的學(xué)士和碩士學(xué)位。可通過(guò)mtj@與他聯(lián)系。

作者:M. Tim Jones


Emulex公司

下一篇: 下一代光傳輸協(xié)議概述

上一篇: 寬帶邊緣網(wǎng)設(shè)備要求更

中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      欧美一区中文字幕| 国产婷婷色一区二区三区在线| 亚洲美女视频| 国产日韩成人精品| 欧美国产日韩精品免费观看| 亚洲视频1区| 精品动漫一区二区| 欧美体内谢she精2性欧美| 久久久久亚洲综合| 亚洲小视频在线观看| 狠狠干成人综合网| 国产精品久久久对白| 欧美日本高清视频| 欧美成人a视频| 久久精品综合一区| 亚洲午夜一区二区| 一区二区三区高清| 亚洲人成人一区二区在线观看| 国产一区视频观看| 国产农村妇女毛片精品久久莱园子 | 欧美激情综合五月色丁香| 午夜免费日韩视频| 亚洲一区二区三区777| 亚洲精品一二| 日韩西西人体444www| 精品51国产黑色丝袜高跟鞋| 国产精品成人午夜| 国产精品久久77777| 欧美精品在线免费播放| 欧美成人高清视频| 免费观看30秒视频久久| 久久免费视频网站| 美女久久网站| 老司机凹凸av亚洲导航| 麻豆国产精品va在线观看不卡| 久久精品视频免费| 久久精品国产精品亚洲综合 | 国产精品视频导航| 国产精品美女久久久久久2018| 国产精品护士白丝一区av| 欧美国产视频在线观看| 欧美三级精品| 国产女主播视频一区二区| 国产日韩欧美亚洲| 亚洲黄色免费| 亚洲视频一区二区免费在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲一区二区三区欧美| 久久国产一区| 欧美电影美腿模特1979在线看| 欧美日韩福利视频| 国产美女精品人人做人人爽| 国产精品日本精品| 国产精品麻豆va在线播放| 国产欧美精品在线观看| 91久久综合| 欧美一级免费视频| 欧美韩国日本综合| 国产欧美日韩免费| 日韩视频在线一区二区三区| 午夜精品久久99蜜桃的功能介绍| 久久在线精品| 国产精品久久9| 在线色欧美三级视频| 亚洲欧美日韩国产一区| 久久综合五月天婷婷伊人| 国产精品久久久久久久午夜 | 亚洲国产精品热久久| 99成人精品| 久久综合久久美利坚合众国| 国产精品美腿一区在线看| 亚洲福利在线看| 欧美一区二区三区在线视频 | 久久久中精品2020中文| 欧美午夜a级限制福利片| 在线免费不卡视频| 久久不射中文字幕| 国产精品h在线观看| 91久久视频| 久久婷婷蜜乳一本欲蜜臀| 国产精品亚洲产品| 日韩一级欧洲| 欧美激情第六页| 亚洲成人原创 | 一区二区三区黄色| 欧美成人免费在线视频| 激情视频一区二区| 欧美一区免费视频| 国产九色精品成人porny| av成人黄色| 欧美视频官网| 亚洲视频在线一区| 国产精品成人v| 亚洲一区二区三区激情| 欧美视频二区36p| 亚洲淫性视频| 国产欧美69| 久久精品国产69国产精品亚洲| 国产人久久人人人人爽| 欧美在线高清| 精品99一区二区| 久久精品日产第一区二区| 国产日韩在线视频| 久久精品最新地址| 欧美日韩另类视频| 亚洲国产欧美日韩精品| 欧美激情五月| 亚洲一区二区三区高清不卡| 国产精品永久免费在线| 久久久国产精彩视频美女艺术照福利| 国产日本欧美视频| 老牛嫩草一区二区三区日本| 亚洲黄一区二区三区| 欧美深夜福利| 久久久蜜桃精品| 亚洲全黄一级网站| 国产精品女主播| 久久综合中文色婷婷| 亚洲精品免费一二三区| 欧美国产日韩一区二区| 亚洲香蕉视频| 伊人色综合久久天天| 欧美日本不卡高清| 欧美一级在线视频| 亚洲第一网站| 国产精品嫩草久久久久| 久久久久久欧美| 中文精品视频| 激情视频一区| 国产精品久久久久9999吃药| 久久影院亚洲| 午夜精品视频在线观看| 91久久精品一区二区别| 国产精品视频专区| 欧美www在线| 欧美一级久久久久久久大片| 亚洲国产精品热久久| 国产精品一级久久久| 欧美成人午夜影院| 亚洲一区二区精品视频| 亚洲精品中文字幕在线观看| 国产一区二区三区黄| 欧美日韩视频在线一区二区观看视频 | 欧美日韩免费观看一区三区| 久久国产精品久久精品国产| 夜夜狂射影院欧美极品| 亚洲国产成人一区| 国模大胆一区二区三区| 国产精品日韩精品欧美精品| 欧美日韩高清在线播放| 久久综合给合久久狠狠色| 亚洲手机成人高清视频| 91久久久亚洲精品| 国产美女精品视频免费观看| 国产精品扒开腿爽爽爽视频 | 欧美午夜精品理论片a级按摩| 欧美电影免费网站| 久久综合久久综合久久综合| 欧美一区二区精美| 午夜日韩电影| 午夜精品久久久久99热蜜桃导演| 一区二区不卡在线视频 午夜欧美不卡'| 韩国女主播一区| 国产精品入口麻豆原神| 国产精品国码视频| 欧美视频三区在线播放| 欧美日韩在线不卡一区| 欧美精品123区| 欧美久久影院| 国产精品v日韩精品| 国产精品久久久久久久浪潮网站 | 亚洲欧美日韩国产一区二区| 午夜精品久久久久| 销魂美女一区二区三区视频在线| 中文久久乱码一区二区| 午夜天堂精品久久久久| 久久精品免费看| 午夜国产欧美理论在线播放| 欧美一区亚洲二区| 久久国产视频网| 美女精品国产| 欧美日韩一区二区精品| 国产精品日韩一区| 激情亚洲网站| 亚洲精品乱码久久久久久按摩观| 亚洲青涩在线| 亚洲永久视频| 久久一区二区视频| 欧美成人免费大片| 国产精品久久一卡二卡| 国产日韩欧美自拍| 在线免费观看一区二区三区| 亚洲毛片在线| 亚洲欧美日韩国产成人精品影院| 久久精品国产99| 国产精品国产a| 在线视频成人| 午夜日韩在线观看| 欧美精品一线| 狠狠v欧美v日韩v亚洲ⅴ|