亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        網(wǎng)絡(luò)終端的實時和非實時通信軟件設(shè)計

        2010-06-25 02:45:06何花王平
        關(guān)鍵詞:流式附件郵件

        何花,王平

        (福建師范大學 物理與光電信息科技學院,福州 350008)

        引 言

        目前,嵌入式網(wǎng)絡(luò)應(yīng)用技術(shù)是國際熱點應(yīng)用技術(shù)。Philips、Samsung等公司都在研發(fā)相應(yīng)的嵌入式網(wǎng)絡(luò)終端,目的是使各類設(shè)備直接接入Internet網(wǎng),實現(xiàn)遠程通信與控制。

        基于單片機的嵌入式網(wǎng)絡(luò)終端的硬件組成方案有“單片機+硬件協(xié)議棧+網(wǎng)卡芯片”模式和“單片機+網(wǎng)卡芯片”模式。因其軟、硬件資源有限,只能實現(xiàn)簡單、低速的通信。本設(shè)計采用的“ARM+網(wǎng)卡芯片”模式,其特點是自帶操作系統(tǒng),芯片中集成了大部分的外圍電路,運行速度快、功能強大[1],為實現(xiàn)互聯(lián)網(wǎng)的應(yīng)用提供了有利的硬件平臺。

        電子郵件和聊天軟件是用戶進行非實時交流和實時交流信息的兩種重要方式。但目前運行在PC機上的此類軟件除具備基本通信能力外,還有許多復雜功能,難以運行在嵌入式網(wǎng)絡(luò)終端這種資源有限的設(shè)備上。另外,許多類庫中的函數(shù)(如System.Net.Mail和System.Web.Mail等)在PC機上可以正常運行,但Windows CE嵌入式操作系統(tǒng)卻不支持。因此,不能直接對現(xiàn)有的電子郵件系統(tǒng)和聊天軟件進行簡單的裁減。針對上述問題,本文設(shè)計了基于嵌入式網(wǎng)絡(luò)終端的聊天軟件和郵件客戶端軟件,具有較高的實用價值。

        1 網(wǎng)絡(luò)終端簡介

        1.1 硬件組成

        本設(shè)計采用Samsung公司的S3C2440A-40微處理器,結(jié)合電源模塊、以太網(wǎng)口模塊、串口模塊、顯示(觸摸屏)模塊、外部數(shù)據(jù)存儲模塊,以及系統(tǒng)工作狀態(tài)指示和接口模塊構(gòu)成嵌入式網(wǎng)絡(luò)終端。

        1.2 嵌入式操作系統(tǒng)

        操作系統(tǒng)采用微軟公司研發(fā)的Windows CE。它是一款功能強大的32位嵌入式實時操作系統(tǒng),具有多線程、多任務(wù)、完全搶占式的特點,是專為各種受到資源嚴格限制的硬件系統(tǒng)所設(shè)計的[2]。Windows CE支持多類硬件外圍設(shè)備,內(nèi)置的標準通信能力使其能夠訪問Internet并收發(fā)E-mail或瀏覽Web。除此之外,Windows CE特有的與Windows類似的用戶界面使最終用戶易于使用[3]。聊天軟件和郵件客戶端軟件皆采用C/S開發(fā)模式,在VS.C#的智能設(shè)備Windows CE開發(fā)環(huán)境中編輯完成。

        2 聊天軟件設(shè)計

        2.1 Socket套接字

        TCP/IP協(xié)議的Socket提供了原始式、流式、數(shù)據(jù)報式3種套接字。其中,原始式套接字主要用于檢測新協(xié)議的實現(xiàn),或訪問現(xiàn)有服務(wù)中配置的新設(shè)備;流式套接字提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù);而數(shù)據(jù)報式套接字則提供不可靠、面向無連接的服務(wù)。

        2.2 面向連接的TCP通信過程

        采用流式套接字編程時,用戶在傳輸、接收數(shù)據(jù)之前必須先建立連接,然后才能從數(shù)據(jù)流中讀出數(shù)據(jù)。其通信過程分為3個步驟:

        ①服務(wù)器監(jiān)聽。服務(wù)器被創(chuàng)建并啟動后,在指定端口進行監(jiān)聽,等待客戶端的連接,實時監(jiān)控網(wǎng)絡(luò)狀態(tài)。

        ②客戶端請求。用Socket創(chuàng)建一個客戶端流式套接字,并向指定的服務(wù)器發(fā)送連接請求。客戶端的套接字必須描述出它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號,然后向服務(wù)器端套接字提出連接請求[4]。

        TcPClient tcPClient=new TcPClient()

        tcPClient.Connect(IPAddress.Parse(server_ip),Int32.Parse(server_Port))//服務(wù)器IP地址server_ip,服務(wù)器端口server_Port

        ③連接確認。當服務(wù)器檢測到有連接請求時,listener.Pending()為ture。服務(wù)進程被喚醒,生成一個新的字節(jié)流套接字Socket socket=listener.AcceptSocket(),與客戶的套接字建立連接。之前的套接字繼續(xù)用于監(jiān)聽網(wǎng)絡(luò)上的服務(wù)請求。

        2.3 聊天軟件系統(tǒng)設(shè)計

        兩款軟件的編程皆采用流式套接字。聊天軟件的服務(wù)器和客戶端處于同一界面。聊天協(xié)議常用命令有:JOIN 、GETLIST 、TALK 、SECRET 、EXIT 、OFF 。軟件運行時,先啟動服務(wù)器監(jiān)聽,服務(wù)器負責管理客戶端的連接并給客戶端發(fā)送信息,同時支持多個客戶端同時連接??蛻舳说卿浐罂稍诤糜蚜斜碇羞x擇好友,進行聊天。

        2.3.1 服務(wù)器端實現(xiàn)

        服務(wù)器端程序流程如圖1所示。采用TcpListener類創(chuàng)建一個Socket套接字 TcpListener listener=new Tcp Listener(localaddr_ip,po rt),并啟動服務(wù)器listener.Start()。在沒有連接請求時,服務(wù)器進程處于休眠狀態(tài)。為了能夠?qū)崿F(xiàn)多用戶同時通信,定義clients為Hashtable對象,同時為每個用戶建立了一個獨立的數(shù)據(jù)接收線程,對接收到的數(shù)據(jù)和命令進行處理 Thread clientService=new Thread(new ThreadStart(client.ServiceClient))。

        2.3.2 客戶端實現(xiàn)

        采用TcPClient類創(chuàng)建一個流式套接字TcPClient作為客戶端,用戶通過點擊好友列表中的好友向 tcPClient類的Connect方法提供所要連接的服務(wù)器的IP地址和端口號。若好友沒有在線(即好友的服務(wù)器沒有打開),或者沒有檢測到連接請求,則Stream.Read()反饋無法通信。連接成功后,將要發(fā)送的命令或數(shù)據(jù)通過By te[]bytes=System.Text.Encoding.Default.GetBytes();Stream.Write(by tes,0,bytes.Length)寫入網(wǎng)絡(luò)數(shù)據(jù)流。

        文件的發(fā)送和接收單獨采用一對流式套接字完成,即有獨立的服務(wù)器和客戶端套接字。傳送文件時,利用FileGetStream()提取文件流:

        文件接收主要流程如下:

        3 電子郵件客戶端設(shè)計

        3.1 SMTP、POP3協(xié)義

        SMTP(Simple Mail Transfer Protoco1,簡單郵件傳輸協(xié)議)規(guī)定由源地址到目的地址傳送郵件的規(guī)則[5]。其命令由ASCII字母表組成,提供8位的字節(jié)傳送通道,最高位被填充為0,剩下的7位正確傳送,且以<CRLF>作為結(jié)束符。

        圖1 服務(wù)器程序流程

        郵局協(xié)議POP3通信過程包括3個階段:驗證狀態(tài)、事務(wù)狀態(tài)和更新狀態(tài)[6]。常用的命令有 DELE(刪除郵件)、RETR+郵件號(閱讀郵件)、TOP(讀取指定郵件的信頭和指定的信頭行數(shù))等。

        3.2 系統(tǒng)設(shè)計

        客戶端軟件主要采用多用途互聯(lián)網(wǎng)郵件擴展編碼(MIME)標準,解決了RFC822標準只能發(fā)送基本的ASCII碼文本信息,難以實現(xiàn)語音、圖像等多媒體數(shù)據(jù)以及其他二進制數(shù)據(jù)文件發(fā)送的問題。MIME常用的編碼有Base64、Quoted-printable、7bit、8bit、Binary 等幾種,其中 7bit是缺省的編碼方式[7]??蛻舳塑浖δ苣K如圖2所示。

        圖2 客戶端軟件功能模塊

        3.3 郵件發(fā)送的實現(xiàn)

        郵件的發(fā)送主要包括以下函數(shù):將字符串編碼為Base64字符串的編碼函數(shù)Base64Encode(),發(fā)送單個命令函數(shù)SendCommand(),接收SMTP服務(wù)器響應(yīng)碼函數(shù) ReceiveData(),讀取附件文件流函數(shù)Get-Stream(),以及綜合上述函數(shù)的郵件發(fā)送函數(shù)SendEmai()。

        若發(fā)送的郵件不包含附件,則直接發(fā)送郵件體。若包含附件,則需要將郵件體分成若干個段:首先定義標志郵件頭域中說明郵件內(nèi)容類型的域Content-Type為multipart/mixed;然后定義其boundary的屬性值,后面每段的分段標志就是boundary的屬性值,附件可以是語音、圖像等。

        郵件發(fā)送程序流程如圖3所示。每條命令發(fā)送后都有判斷響應(yīng)碼是否正確,如果不正確,則放棄發(fā)送郵件內(nèi)容,并提示用戶釋放資源。

        3.4 郵件接收的實現(xiàn)

        結(jié)合POP3協(xié)議的命令、Socket套接字和Network-Stream網(wǎng)絡(luò)數(shù)據(jù)流,可以很快地獲取郵件源代碼。如何從源代碼中提取有用的信息并轉(zhuǎn)換成人們能夠理解的文字,是郵件接收程序的難點。本郵件接收系統(tǒng)主要依靠郵件接收類(WincePOPClient.CS)、解碼類(QUOTEDPRINTABLE)、解碼類(BASE64)和附件保存類(SaveFileAttachment)實現(xiàn)。

        郵件接收類(WincePOPClient.CS)包含POP3協(xié)議的各種命令、郵件源代碼的分段、有用代碼的提取,結(jié)合QUOTED-PRINTABLE解碼類、Base64解碼類等進行解碼。當正在查看的郵件含附件時,則調(diào)用SaveFileAttachment類提取附件。SaveFileAttachment類主要通過正切表達式提取附件的內(nèi)容,經(jīng)解碼后由SaveFileDialog保存。

        接收郵件程序流程如圖4所示。

        圖3 郵件發(fā)送程序流程

        圖4 接收郵件程序流程

        4 軟件系統(tǒng)調(diào)試

        嵌入式網(wǎng)絡(luò)終端聊天軟件功能測試如圖5所示。嵌入式網(wǎng)絡(luò)終端郵件收發(fā)過程測試如圖6所示。當所讀取的郵件內(nèi)包含附件時,讀完郵件并按“確定”鍵后,會彈出“保存文件”對話框,可選擇是否保存附件。

        圖5 聊天軟件測試

        圖6 聊天軟件測試

        結(jié) 語

        本文在“ARM+網(wǎng)卡芯片”模式的硬件平臺實現(xiàn)了與網(wǎng)絡(luò)資源的對接,開發(fā)出基于Windows CE嵌入式操作系統(tǒng)的聊天軟件和電子郵件客戶端系統(tǒng)。這兩款軟件完全可以滿足嵌入式系統(tǒng)對硬件的要求,同時也較好地滿足了現(xiàn)實社會對交互性、分布性和異地辦公的需求,使人們可以在此網(wǎng)絡(luò)終端上進行實時和非實時通信。在此基礎(chǔ)上,還可繼續(xù)開發(fā)VoIP語音通信和 Telnet數(shù)據(jù)通信,具有良好的市場前景。

        [1]王平,等.基于PSTN與Interent的嵌入式終端遠程控制方案[J].微計算機應(yīng)用,2009(1):64-51.

        [2]吳弋旻,葛海江,張能貴.基于WinCE的模擬鍵盤驅(qū)動程序的實現(xiàn)[J].機電工程,2008,25(9):103-105.

        [3]林建民.嵌入式操作系統(tǒng)技術(shù)發(fā)展趨勢[J].計算機工程,2001,27(10):1-4.

        [4]李巧玲.基于C#-Socket的網(wǎng)絡(luò)通信程序設(shè)計[J].福建電腦,2009(4):135-136.

        [5]周彩蘭,虞珊.基于SM TP協(xié)議解析的垃圾郵件防止技術(shù)[J].計算機技術(shù)與發(fā)展,2008,18(1):188-191.

        [6]葉樹華,高志紅.網(wǎng)絡(luò)編程實用教程[M].北京:人民郵電出版社,2006:328-330.

        [7]孫濤.MIME郵件格式分析及信息提取[J].計算機與信息技術(shù),2007,(6):24-30.

        猜你喜歡
        流式附件郵件
        基于James的院內(nèi)郵件管理系統(tǒng)的實現(xiàn)
        附件三:擬制定的標準匯總表
        輻流式二沉池的結(jié)構(gòu)優(yōu)化研究
        關(guān)于TSG 07——2019附件M與TSG Z0004——2007內(nèi)容的對照
        一封郵件引發(fā)的梅賽德斯反彈
        車迷(2018年12期)2018-07-26 00:42:32
        新型武器及附件展呈
        輕兵器(2017年3期)2017-03-13 19:15:42
        附件 注釋體例
        微球測速聚類分析的流式液路穩(wěn)定性評估
        自調(diào)流式噴管型ICD的設(shè)計與數(shù)值驗證
        流式在線直播視頻的采集
        河南科技(2015年8期)2015-03-11 16:23:41
        亚洲一码二码在线观看| 精品人妻少妇一区二区三区不卡 | jizz国产精品免费麻豆| 中文字幕亚洲精品人妻| 91偷自国产一区二区三区| 少妇伦子伦精品无吗| 天天躁日日躁狠狠躁av中文| 欧美一区二区三区激情| 久久综合五月天| 久久精品国产72国产精福利| 亚洲一区极品美女写真在线看| 日本最新一区二区三区在线| 天天摸夜夜摸摸到高潮| 欧美国产日产一区二区| 国产精品日韩中文字幕| 97超碰精品成人国产| 最近中文字幕完整版免费| 精品国产国产AV一区二区| 亚洲成生人免费av毛片| 曰批免费视频播放免费| 国产农村妇女精品一二区| 国产精品无码精品久久久| 国产av普通话对白国语| 国产视频自拍一区在线观看| 天天弄天天模| 国内自拍偷拍亚洲天堂| 日韩一二三四区在线观看| 久久久中日ab精品综合| 欧美午夜一区二区福利视频| 亚洲国产日韩av一区二区| 亚洲tv精品一区二区三区| 老熟女重囗味hdxx70星空| 国内久久婷婷激情五月天| 国产精品专区一区二区av免费看| 女同视频一区二区在线观看| 午夜无码片在线观看影视| 国产精品自产拍在线观看中文| 美腿丝袜一区在线观看| 五月色丁香婷婷网蜜臀av| 国产肉丝袜在线观看| 全部免费国产潢色一级|