欧美成人黄色网_欧美精品久久_国产在线一区二区三区_免费视频久久久_亚洲二区视频_欧美大片免费高清观看

產(chǎn)品分類

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

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

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

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)程登錄打開一個(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)中開發(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ā)送郵件(參見示例程序3)。sendResponse 和processCommand函數(shù)的功能十分顯而易見。

函數(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)(見實(shí)例程序1)。該結(jié)構(gòu)中多數(shù)的字段都一目了然,其中一個(gè)特殊的字段是specialHeaders。如果電子郵件客戶程序把郵件中所有的標(biāo)題域都顯示出來(lái),將發(fā)現(xià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)在一直從事嵌入式軟件開發(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è)備要求更

主站蜘蛛池模板: 国产成人精品久久综合 | 国产一级特黄高清免费大片 | 亚洲天堂一区二区三区 | 国内精品久久久久久久影视 | 欧美高清国产 | 最近中文字幕完整版 | 欧美va | 国产区小视频 | 一本精品中文字幕在线 | 国产精品视频在线免费观看 | 秋霞a级毛片在线看 | 一区在线免费 | 免费高清成人性视频3p网站 | 成人国产永久福利看片 | 国产精品高清一区二区不卡 | 国产美女精品视频 | 国色天香社区视频在线 | 久久亚洲sm情趣捆绑调教 | 久久aaaa片一区二区 | 久久人妻少妇嫩草av蜜桃 | 小明成人永久免费观看视频 | 激情网站免费看 | 亚洲欧美日韩中文久久 | 极品精品国产超清自在线观看 | 亚洲av永久无码精品一百度影院 | 男女做爽爽免费视频 | 四虎影视必出精品 | 欧美激情亚洲精品日韩1区2区 | 日本一区二区免费电影 | 国产一区二区视频在线观看 | 2021国产成人综合亚洲精品 | 中文字幕无码免费久久99 | 99久久免费视频在线观看 | 午夜免费福利 | 国产日韩亚洲不卡高清在线观看 | 99久久免费午夜国产精品 | 亚洲一区二区三区首页 | 曰本丰满熟妇xxxx性 | www.四虎在线| 国内精品九九久久久精品 | 精品国产一二三产品区别在哪 |