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加入嵌入式視覺聯盟
主站蜘蛛池模板: 好紧太爽了视频免费无码| 天天色天天操综合网| 午夜毛片免费看| 国产最爽的乱婬视频国语对白| av大片在线无码免费| 免费不卡视频| 欧美、日韩、国产综合一区| 国产成本人片免费a∨短片| 国产综合另类小说色区色噜噜| 精品国产三级在线观看| 日本人妻一区二区三区不卡影院| 亚洲中文字幕在线精品一区| 最新无码专区超级碰碰碰| a毛片在线免费观看| 欧美影院久久| 91福利在线看| 日本黄色不卡视频| 88av在线| 特级毛片免费视频| 国产美女自慰在线观看| 亚洲免费播放| 91精品情国产情侣高潮对白蜜| 天天综合天天综合| 99久久精品免费看国产电影| 久久国产精品无码hdav| 精品一区二区三区中文字幕| 亚洲第一极品精品无码| 日韩毛片基地| 国产男女XX00免费观看| 无码中文字幕乱码免费2| 99久久国产综合精品女同| www.国产福利| 午夜精品久久久久久久无码软件 | 欧美日韩免费在线视频| 97国产精品视频人人做人人爱| 久久一日本道色综合久久| 丁香婷婷久久| 国产精彩视频在线观看| 久久综合国产乱子免费| 国产不卡一级毛片视频| 国产精品露脸视频| 欧美精品在线视频观看| 亚洲乱伦视频| 老司机午夜精品网站在线观看| 亚洲二三区| 天天综合亚洲| 蜜芽一区二区国产精品| 亚洲精品无码av中文字幕| 亚洲熟女中文字幕男人总站 | 亚洲精品无码抽插日韩| 婷婷激情亚洲| 日本不卡视频在线| 91国内外精品自在线播放| 亚洲AV无码不卡无码| 午夜影院a级片| 日韩人妻精品一区| 2020国产精品视频| 精品日韩亚洲欧美高清a| 亚洲国产日韩欧美在线| 美女裸体18禁网站| 97影院午夜在线观看视频| 在线欧美国产| 无码中文AⅤ在线观看| 人人爽人人爽人人片| 国产激情无码一区二区三区免费| 亚洲综合经典在线一区二区| 91精品国产一区| 婷婷综合缴情亚洲五月伊| 麻豆精品视频在线原创| 丰满人妻中出白浆| 一本色道久久88| 深爱婷婷激情网| 国产永久免费视频m3u8| 在线观看国产精美视频| 欧美啪啪视频免码| 亚洲国内精品自在自线官| 一级在线毛片| 亚洲综合中文字幕国产精品欧美 | 日韩在线2020专区| 成人毛片免费在线观看| 免费国产好深啊好涨好硬视频| 国产性猛交XXXX免费看|