999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡終端的實時和非實時通信軟件設計

2010-06-25 02:45:06何花王平
單片機與嵌入式系統應用 2010年7期
關鍵詞:嵌入式

何花,王平

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

引 言

目前,嵌入式網絡應用技術是國際熱點應用技術。Philips、Samsung等公司都在研發相應的嵌入式網絡終端,目的是使各類設備直接接入Internet網,實現遠程通信與控制。

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

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

1 網絡終端簡介

1.1 硬件組成

本設計采用Samsung公司的S3C2440A-40微處理器,結合電源模塊、以太網口模塊、串口模塊、顯示(觸摸屏)模塊、外部數據存儲模塊,以及系統工作狀態指示和接口模塊構成嵌入式網絡終端。

1.2 嵌入式操作系統

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

2 聊天軟件設計

2.1 Socket套接字

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

2.2 面向連接的TCP通信過程

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

①服務器監聽。服務器被創建并啟動后,在指定端口進行監聽,等待客戶端的連接,實時監控網絡狀態。

②客戶端請求。用Socket創建一個客戶端流式套接字,并向指定的服務器發送連接請求??蛻舳说奶捉幼直仨毭枋龀鏊B接的服務器的套接字,指出服務器端套接字的地址和端口號,然后向服務器端套接字提出連接請求[4]。

TcPClient tcPClient=new TcPClient()

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

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

2.3 聊天軟件系統設計

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

2.3.1 服務器端實現

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

2.3.2 客戶端實現

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

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

文件接收主要流程如下:

3 電子郵件客戶端設計

3.1 SMTP、POP3協義

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

圖1 服務器程序流程

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

3.2 系統設計

客戶端軟件主要采用多用途互聯網郵件擴展編碼(MIME)標準,解決了RFC822標準只能發送基本的ASCII碼文本信息,難以實現語音、圖像等多媒體數據以及其他二進制數據文件發送的問題。MIME常用的編碼有Base64、Quoted-printable、7bit、8bit、Binary 等幾種,其中 7bit是缺省的編碼方式[7]。客戶端軟件功能模塊如圖2所示。

圖2 客戶端軟件功能模塊

3.3 郵件發送的實現

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

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

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

3.4 郵件接收的實現

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

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

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

圖3 郵件發送程序流程

圖4 接收郵件程序流程

4 軟件系統調試

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

圖5 聊天軟件測試

圖6 聊天軟件測試

結 語

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

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

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

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

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

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

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

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

猜你喜歡
嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發平臺
基于嵌入式系統Windows CE的應用程序開發
嵌入式單片機在電機控制系統中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 久久semm亚洲国产| 日本免费一级视频| 亚洲三级成人| 亚洲欧美成aⅴ人在线观看| 国产精品福利导航| 在线观看国产黄色| 国产门事件在线| 亚洲精品无码久久久久苍井空| 亚洲人成网址| 亚洲天堂网视频| 狂欢视频在线观看不卡| 国产偷国产偷在线高清| 日韩在线永久免费播放| 免费国产黄线在线观看| 国产亚洲精久久久久久无码AV| 亚洲色图在线观看| 青青草综合网| 亚洲综合色婷婷| 本亚洲精品网站| 四虎国产在线观看| 大陆国产精品视频| 国内精品视频| 精品国产一区二区三区在线观看| 久久人人爽人人爽人人片aV东京热| 亚洲美女久久| 草草影院国产第一页| 国产成人精品18| 精品91自产拍在线| 国产成人精品男人的天堂下载 | 国产精品自拍露脸视频| 中文字幕永久视频| 波多野结衣无码AV在线| 国产女人18水真多毛片18精品| 久久精品亚洲热综合一区二区| 国产欧美在线观看精品一区污| 波多野结衣无码中文字幕在线观看一区二区 | 91九色国产porny| 欧美中日韩在线| 国产在线视频导航| 91精品国产91久无码网站| 久久亚洲国产视频| 97se亚洲综合在线韩国专区福利| 2021国产乱人伦在线播放| 国产成人综合亚洲网址| 中文字幕日韩欧美| 国产真实二区一区在线亚洲| 在线观看国产精美视频| 久久 午夜福利 张柏芝| 在线观看免费黄色网址| 福利视频久久| 女人18毛片一级毛片在线 | 国产精品视频a| a级毛片毛片免费观看久潮| 91色在线观看| 亚洲乱码精品久久久久..| 99激情网| 亚洲欧美成aⅴ人在线观看| 久久精品电影| 97国产在线观看| 亚洲欧洲自拍拍偷午夜色| 99久久精品国产精品亚洲| 美女黄网十八禁免费看| 不卡的在线视频免费观看| 在线看片免费人成视久网下载 | 毛片免费在线| 美女一级毛片无遮挡内谢| 国产亚洲欧美日韩在线观看一区二区| 亚洲国产高清精品线久久| 久久天天躁狠狠躁夜夜2020一| 国产欧美自拍视频| 永久成人无码激情视频免费| 国产成人1024精品下载| 凹凸国产熟女精品视频| 九九热精品在线视频| 亚洲黄色成人| 国产h视频免费观看| 久久性妇女精品免费| 91在线视频福利| 2021国产精品自产拍在线观看| 四虎永久在线视频| 激情综合五月网| 国产乱论视频|