局域網(wǎng)下的java聊天軟件畢業(yè)設(shè)計(jì)_第1頁(yè)
局域網(wǎng)下的java聊天軟件畢業(yè)設(shè)計(jì)_第2頁(yè)
局域網(wǎng)下的java聊天軟件畢業(yè)設(shè)計(jì)_第3頁(yè)
局域網(wǎng)下的java聊天軟件畢業(yè)設(shè)計(jì)_第4頁(yè)
局域網(wǎng)下的java聊天軟件畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要隨著互聯(lián)網(wǎng)的迅猛的發(fā)展,網(wǎng)絡(luò)逐漸成了人們獲取信息的主要途徑。做為傳統(tǒng)的信息交流工具e-mail,因?yàn)槠浒l(fā)送和接受消息時(shí)間相對(duì)滯后的緣故,不能滿足人們迅速獲取信息的要求。即時(shí)通訊應(yīng)運(yùn)而生,為大眾提供了一種嶄新的綜合的信息交流平臺(tái)。即時(shí)通訊不同于傳統(tǒng)的通訊工具e-mail,在于它的交流是實(shí)時(shí)的,使得人們交流更加便捷和快速,滿足了人們迅速獲取信息的需求,以深受大眾的喜愛(ài),有著很好的發(fā)展前景。其中聊天軟件就是即時(shí)通訊的具體實(shí)現(xiàn)。本系統(tǒng)建立在JAVA平臺(tái)上,系統(tǒng)的設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο蟮脑O(shè)計(jì)原則。系統(tǒng)采用C/S結(jié)構(gòu),客戶端與客戶端以及客戶端與服務(wù)器端之間通過(guò)Socket傳送消息。使用JAVA語(yǔ)言編寫(xiě),開(kāi)發(fā)工具采用Eclipse。服務(wù)器端設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中,采用了多線程技術(shù),可以在單個(gè)程序當(dāng)中同時(shí)運(yùn)行多個(gè)不同的線程,執(zhí)行不同的任務(wù)。大大增強(qiáng)了程序?qū)Ψ?wù)器資源的利用。關(guān)鍵字:多線程;客戶機(jī)/服務(wù)器;java;socket;eclipseAbstractWiththerapiddevelopmentofInternet,thenetworkgraduallybecomesthemainwayforpeopletoobtaininformation.Asthetraditionalinformationcommunicationtoole-mail,becauseoftherelativelagofthesendingandreceivingmessagesoftimereasons,cannotsatisfypeoplequickaccesstoinformationrequirements.Imemergeasthetimesrequire,providesanewintegratedinformationexchangeplatformforthepublic.Unliketraditionalinstantmessagingcommunicationtoole-mail,theexchangeisthatitisareal-time,makespeoplecommunicatemoreconvenientandfast,satisfyingthepeoplequickaccesstoinformationneeds,solovedbythepublic,hasagooddevelopmentforeground.Concreterealizationisinstantmessagingchatsoftware.ThesystembuiltontheJAVAplatform,thesystemdesignusingobject-orientedtechnologyandobject-orienteddesignprinciples.SystemusestheC/Sstructure,clientandclient-sideandserver-sideclientandsendmessagesthroughSocket.TheuseofJAVAlanguage,developmenttoolsusingEclipse.DesignandImplementationofserver-sideprocess,theuseofmulti-threadingtechnology,whichcanprocessinasinglerunatthesametimeanumberofdifferentthreads,theimplementationofdifferenttasks.Proceduresgreatlyenhancedtheuseofserverresources.Keywords:multiplethreads;client/server;Java;socket;Eclipse.目錄1緒論 31.1聊天軟件開(kāi)發(fā)背景 31.2Java語(yǔ)言 31.2.1Java的發(fā)展歷史 31.2.2Java的特點(diǎn) 41.2.3Java與Internet 51.3Socket編程 61.3.1關(guān)于TCP/IP協(xié)議 61.3.2服務(wù)器和客戶機(jī) 62需求分析 72.1可行性分析 72.2系統(tǒng)功能需求 72.3系統(tǒng)性能需求 73概要設(shè)計(jì) 83.1運(yùn)行環(huán)境 83.2軟件功能框架圖 83.2.1服務(wù)端功能框架圖 83.2.2客戶端功能框架圖 84詳細(xì)設(shè)計(jì) 94.1流程圖 94.1.1服務(wù)端 94.1.2客戶端 104.2編寫(xiě)服務(wù)器端程序 104.2.1通訊數(shù)據(jù)包說(shuō)明(格式說(shuō)明,包類型說(shuō)明) 104.2.2問(wèn)題陳述 114.2.3解決方案 114.3編寫(xiě)客戶端程序 134.3.1通訊數(shù)據(jù)包說(shuō)明(格式說(shuō)明,包類型說(shuō)明) 134.3.2問(wèn)題陳述 134.3.3解決方案 135系統(tǒng)實(shí)現(xiàn) 175.1服務(wù)端 175.1.1服務(wù)器啟動(dòng)配置 175.1.2服務(wù)端主窗口 175.2客戶端 185.2.1客戶端登陸 185.2.2客戶端配置 195.2.3客戶端聊天主窗口 19致謝 21參考文獻(xiàn) 221緒論1.1聊天軟件開(kāi)發(fā)背景Internet是目前世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個(gè)整體。作為Internet上一種先進(jìn)的,易于被人們所接受的信息檢索手段,WorldWideWeb(簡(jiǎn)稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫(kù)。據(jù)估計(jì),目前Internet上已有上百萬(wàn)個(gè)Web站點(diǎn),其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂(lè)、體育等各個(gè)領(lǐng)域,其用戶群十分龐大,因此,建設(shè)一個(gè)好的Web站點(diǎn)對(duì)于一個(gè)機(jī)構(gòu)的發(fā)展十分重要。近年來(lái)計(jì)算機(jī)技術(shù)的快速發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,越來(lái)越深刻的改變了人們生活的方方面面。使得人們能以更低廉的價(jià)格,開(kāi)發(fā)出更方便、更實(shí)用的網(wǎng)絡(luò)工具。各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系和交流方式,使得人們可以在遠(yuǎn)隔千里之遙隨時(shí)通訊。過(guò)去的種種陳舊的聯(lián)系方式,已經(jīng)不能滿足現(xiàn)代生活的需要。網(wǎng)上聊天系統(tǒng)作為一種方便消費(fèi)者與人們之間聯(lián)系的實(shí)用系統(tǒng)便應(yīng)運(yùn)而生。網(wǎng)上聊天系統(tǒng)是為人們進(jìn)行交流和聯(lián)系提供的一個(gè)平臺(tái)。通過(guò)提供完善的網(wǎng)上聊天系統(tǒng)的管理,可以達(dá)到增進(jìn)人們與消費(fèi)者之間、消費(fèi)者與消費(fèi)者之間的交流和聯(lián)系的目的局域網(wǎng)聊天工具是一種面向企業(yè)局域網(wǎng)終端使用者的網(wǎng)絡(luò)溝通工具服務(wù),使用者可以通過(guò)安裝了即時(shí)通信的終端機(jī)進(jìn)行兩人或多人之間的實(shí)時(shí)溝通。目前,中國(guó)市場(chǎng)上的企業(yè)級(jí)即時(shí)通信工具主要包括:通軟聯(lián)合的GoCom、騰訊公司的RTX、IBM的LotusSametime等,免費(fèi)版的有網(wǎng)絡(luò)信使,傳我,匯海集團(tuán)的匯訊WiseUC等。局域網(wǎng)聊天軟件不再是一個(gè)單純的聊天工具,它已經(jīng)發(fā)展成集交流、資訊、娛樂(lè)、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合化信息平臺(tái)。是一種終端連往即時(shí)通訊網(wǎng)絡(luò)的服務(wù)。局域網(wǎng)通訊不同于e-mail在于它的交談是即時(shí)的。大部分的即時(shí)通訊服務(wù)提供了狀態(tài)信息的特性──顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在在線與能否與聯(lián)絡(luò)人交談。局域網(wǎng)聊天工具,是以企業(yè)內(nèi)部辦公,建立員工交流平臺(tái)為基礎(chǔ),通過(guò)系統(tǒng)整合、邊緣功能,為企業(yè)提供一整套的即時(shí)溝通和實(shí)時(shí)協(xié)作的解決方案。由于企業(yè)對(duì)信息類軟件的需求還在“探索”與“嘗試”階段,所以會(huì)導(dǎo)致很多系統(tǒng)不能“互通”,這也成了局域網(wǎng)聊天軟件的一個(gè)使命。當(dāng)信息軟件被廣泛使用之后,“互通”接口具備否,將被作為軟件被選用的重要條件。1.2Java語(yǔ)言1.2.1Java的發(fā)展歷史在這個(gè)世界上,熟悉Java歷史的人非常多,如果要問(wèn)一個(gè)人Java是從哪年誕生的,也許大多數(shù)人都會(huì)回答是1995年(這個(gè)非常好記,因?yàn)槲④浀腤indows95也是在這一年發(fā)布的)。但事實(shí)上Java早在上個(gè)世紀(jì)90年代初就開(kāi)始醞釀了。自1995年到1998年是Java的幼年時(shí)期,Sun在Green項(xiàng)目經(jīng)過(guò)了幾年的研究,終于在1995年5月23日在SunWorld'95上正式發(fā)布Java和HotJava瀏覽器但這只是一種語(yǔ)言,而要想開(kāi)發(fā)復(fù)雜的應(yīng)用程序,必須要有一個(gè)的強(qiáng)大的開(kāi)發(fā)庫(kù)支持還行。因此,sun在之后的幾年中推出了推出JDK多個(gè)版本。雖然在1998年之前,Java被眾多的軟件企業(yè)所采用,但由于當(dāng)時(shí)硬件環(huán)境和JVM的技術(shù)原因,它的應(yīng)用卻很有限。當(dāng)時(shí)Java主要只使用在前端的Applet以及一些移動(dòng)設(shè)備中。然而這并不等于Java的應(yīng)用只限于這些領(lǐng)域。在1998年是Java開(kāi)始迅猛發(fā)展的一年。在這一年中Sun發(fā)布了JSP/Servlet、EJB規(guī)范以及將Java分成了J2EE、J2SE和J2ME自1998年到2004年是Java的青少年時(shí)期,在1998年12月4日。Sun發(fā)布了Java的歷史上最重要的一個(gè)JDK版本:JDK1.2。這個(gè)版本標(biāo)志著Java已經(jīng)進(jìn)入Java2時(shí)代。這個(gè)時(shí)期也是Java飛速發(fā)展的時(shí)期。在Java2時(shí)代Sun2004年至今是Java的壯年時(shí)期。在2004年10月,Sun發(fā)布了我們期待已久的版本:JDK1.5,同時(shí),Sun將JDK1.5改名為J2SE5.0。和JDK1.4不同,JDK1.4的主題是性能,而J2SE5.0的主題是易用。Sun不僅為J2SE5.0增加了諸如泛型、增強(qiáng)的for語(yǔ)句、可變數(shù)目參數(shù)、注釋(Annotations)、自動(dòng)拆箱(unboxing)和裝箱等功能,同時(shí),也更新的企業(yè)級(jí)規(guī)范,如通過(guò)注釋等新特性改善了EJB的復(fù)雜性,并推出了EJB3.0規(guī)范。在Java發(fā)展的十幾年的時(shí)間里,經(jīng)歷了無(wú)數(shù)的風(fēng)風(fēng)雨雨?,F(xiàn)在Java已經(jīng)成為一種相當(dāng)成熟的語(yǔ)言了。在這10年的發(fā)展中,Java平臺(tái)吸引了數(shù)百萬(wàn)的開(kāi)發(fā)者,在網(wǎng)絡(luò)計(jì)算遍及全球的今天,更是有20億臺(tái)設(shè)備使用了Java技術(shù)。1.2.2Java的特點(diǎn)Java語(yǔ)言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο?、分布式、解釋?zhí)行、魯棒、安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動(dòng)態(tài)性。

1.簡(jiǎn)單性

Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫(xiě)出適合于各種情況的應(yīng)用程序。Java略去了運(yùn)算符重載、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾收集大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。2.面向?qū)ο驤ava語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類機(jī)制以及動(dòng)態(tài)的接口模型。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,并且通過(guò)繼承機(jī)制,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。3.分布性Java是面向網(wǎng)絡(luò)的語(yǔ)言。通過(guò)它提供的類庫(kù)可以處理TCP/IP協(xié)議,用戶可以通過(guò)URL地址在網(wǎng)絡(luò)上很方便地訪問(wèn)其它對(duì)象。

4.魯棒性Java在編譯和運(yùn)行程序時(shí),都要對(duì)可能出現(xiàn)的問(wèn)題進(jìn)行檢查,以消除錯(cuò)誤的產(chǎn)生。它提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。通過(guò)集成的面向?qū)ο蟮睦馓幚頇C(jī)制,在編譯時(shí),Java提示出可能出現(xiàn)但未被處理的例外,幫助程序員正確地進(jìn)行選擇以防止系統(tǒng)的崩潰。另外,Java在編譯時(shí)還可捕獲類型聲明中的許多常見(jiàn)錯(cuò)誤,防止動(dòng)態(tài)運(yùn)行時(shí)不匹配問(wèn)題的出現(xiàn)。5.安全性用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵。Java不支持指針,一切對(duì)內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止程序員使用"特洛伊"木馬等欺騙手段訪問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。6.體系結(jié)構(gòu)中立

Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行時(shí)系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。7.可移植性與平臺(tái)無(wú)關(guān)的特性使Java程序可以方便地被移植到網(wǎng)絡(luò)上的不同機(jī)器。同時(shí),Java的類庫(kù)中也實(shí)現(xiàn)了與不同平臺(tái)的接口,使這些類庫(kù)可以移植。另外,Java編譯器是由Java語(yǔ)言實(shí)現(xiàn)的,Java運(yùn)行時(shí)系統(tǒng)由標(biāo)準(zhǔn)C實(shí)現(xiàn),這使得Java系統(tǒng)本身也具有可移植性。8.解釋執(zhí)行Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單。9.高性能和其它解釋執(zhí)行的語(yǔ)言如BASIC、TCL不同,Java字節(jié)碼的設(shè)計(jì)使之能很容易地直接轉(zhuǎn)換成對(duì)應(yīng)于特定CPU的機(jī)器碼,從而得到較高的性能。10.多線程多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。通過(guò)使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。1.2.3Java與InternetJava語(yǔ)言取得成功的領(lǐng)域之一就是網(wǎng)絡(luò)(其他語(yǔ)言)數(shù)頁(yè)代碼>(Java)一條語(yǔ)句。TCP/IP(傳輸控制協(xié)議/網(wǎng)間協(xié)議)是internet的主要協(xié)議,定義了計(jì)算機(jī)和外設(shè)進(jìn)行通信所使用的規(guī)則(應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,鏈路層).大多數(shù)基于internet的應(yīng)用程序被看作TCP/IP協(xié)議的上一層.如:ftp,http,smtp,pop3,telnet,nntp等。IP地址:TCP/IP網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)都有唯一的地址--IP地址.在Java中,有一個(gè)用來(lái)存儲(chǔ)internet地址的類叫InterAddress.Java提供的網(wǎng)絡(luò)功能有三大類:URL,Socket,Datagram.1、URL是三大功能中最高級(jí)的一種,通過(guò)URLJava程序可以直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù).2、Socket是傳統(tǒng)網(wǎng)絡(luò)程序最常用的方式,可以想象為兩個(gè)不同的程序通過(guò)網(wǎng)絡(luò)的通信信道.3、Datagram是更低級(jí)的網(wǎng)絡(luò)傳輸方式,它把數(shù)據(jù)的目的紀(jì)錄在數(shù)據(jù)包中,然后直接放在網(wǎng)絡(luò)上1.3Socket編程1.3.1關(guān)于TCP/IP協(xié)議TransmissionControlProtocol/InternetProtocol的簡(jiǎn)寫(xiě),中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯?wèn)題,一有問(wèn)題就發(fā)出信號(hào),要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡?。而IP是給因特網(wǎng)的每一臺(tái)電腦規(guī)定一個(gè)地址。TCP協(xié)議是網(wǎng)絡(luò)通信的基石,對(duì)此,Java專門提供了Socket的類庫(kù),在其中抽象出TCP協(xié)議通信的常用方法。1.3.2服務(wù)器和客戶機(jī)客戶機(jī)又稱為用戶工作站,是用戶與網(wǎng)絡(luò)打交道的設(shè)備,一般由微機(jī)擔(dān)任,每一個(gè)客戶機(jī)都運(yùn)行在它自己的、并為服務(wù)器所認(rèn)可的操作系統(tǒng)環(huán)境中。服務(wù)器指一個(gè)管理資源并為用戶提供服務(wù)的計(jì)算機(jī)軟件,通常分為文件服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器和應(yīng)用程序服務(wù)器。運(yùn)行以上軟件的計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)也被稱為服務(wù)器。服務(wù)器的主要任務(wù)是偵聽(tīng)建立連接的請(qǐng)求,這是由我們創(chuàng)建的特定服務(wù)器對(duì)象完成的。而客戶機(jī)的任務(wù)是試著與一臺(tái)服務(wù)器建立連接,這是由我們創(chuàng)建的特定客戶機(jī)對(duì)象完成的。一旦連接建好,那么無(wú)論在服務(wù)器端還是客戶機(jī)端,連接只是魔術(shù)般地變成了一個(gè)IO數(shù)據(jù)流對(duì)象。從這時(shí)開(kāi)始,我們可以象讀寫(xiě)一個(gè)普通的文件那樣對(duì)待連接。所以一旦建好連接,我們只需使用自己熟悉的IO命令即可。這正是Java聯(lián)網(wǎng)最方便的一個(gè)地方。

2需求分析2.1可行性分析(1)經(jīng)濟(jì)可行性:本系統(tǒng)無(wú)需數(shù)據(jù)庫(kù)服務(wù),由于聊天室使用人數(shù)有限,無(wú)數(shù)據(jù)庫(kù)完全可以應(yīng)付,所以成本就無(wú)需考慮了。(2)操作可行性:只要一臺(tái)以上的計(jì)算機(jī)連在同一個(gè)局域網(wǎng)上,本系統(tǒng)就可以使用了,所以操作簡(jiǎn)單,不存在問(wèn)題。(3)技術(shù)可行性:本系統(tǒng)采用java語(yǔ)言,是基于CS架構(gòu)的。開(kāi)發(fā)這個(gè)軟件需要開(kāi)發(fā)者對(duì)socket編程和javaSwing及多線程技術(shù)比較熟悉。由于本人對(duì)java應(yīng)用水平有限,希望不足之處可以得到諒解。綜上所述,本系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。2.2系統(tǒng)功能需求本系統(tǒng)主要通過(guò)客戶端、服務(wù)器端來(lái)體現(xiàn)聊天系統(tǒng)的基本功能。(1)服務(wù)器端1.處理用戶注冊(cè)2.處理用戶登錄3.處理用戶發(fā)送信息,服務(wù)器監(jiān)控聊天內(nèi)容4.處理用戶得到信息5.處理用戶退出 8.服務(wù)器踢人。 9.保存服務(wù)器日志。(2)客戶端 1.用戶登錄界面及結(jié)果 2.用戶發(fā)送信息界面及結(jié)果 3.用戶得到信息界面及結(jié)果 4.用戶退出界面及結(jié)果2.3系統(tǒng)性能需求實(shí)用性:為局域網(wǎng)聊天提供方便,有效進(jìn)行作業(yè)管理。操作簡(jiǎn)單:本系統(tǒng)應(yīng)該適用于不同水平的使用者,包括事業(yè)單位和企業(yè)單位,同時(shí)系統(tǒng)不應(yīng)太復(fù)雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡(jiǎn)單易行。安裝使用簡(jiǎn)便:服務(wù)器端的安裝簡(jiǎn)潔明了,客戶機(jī)無(wú)需再裝任何軟件就可以直接注冊(cè)登陸聊天。適應(yīng)性:應(yīng)該能廣泛應(yīng)用于不同類型的企事業(yè)單位。系統(tǒng)采用模塊化設(shè)計(jì),用戶可以根據(jù)自己的實(shí)際情況自行組合,使系統(tǒng)在不同的硬件環(huán)境下都能得以應(yīng)用。3概要設(shè)計(jì)3.1運(yùn)行環(huán)境安裝有JRE1.5以上的windows系統(tǒng)(推薦winXP,winVista或win7)3.2軟件功能框架圖3.2.1服務(wù)端功能框架圖這個(gè)圖主要介紹服務(wù)端的功能,主要包括測(cè)試端口、保存配置、服務(wù)器管理、用戶管理、日志管理。如圖1所示。圖3-1服務(wù)端功能框架圖3.2.2客戶端功能框架圖這個(gè)圖主要介紹了客戶端的功能,主要包括設(shè)置IP、設(shè)置端口、修改密碼、發(fā)送私聊信息、發(fā)送公聊信息、顯示公告、顯示在線用戶。如圖2所示。圖3-2客戶端功能框架圖4詳細(xì)設(shè)計(jì)4.1流程圖4.1.1服務(wù)端服務(wù)器登錄流程圖當(dāng)打開(kāi)服務(wù)器登錄主窗體時(shí),需要測(cè)試端口是否可用,如可用則保存配置文件,若保存成功則進(jìn)入服務(wù)器界面。如圖3所示。圖4-1服務(wù)端登錄流程圖服務(wù)器管理流程圖當(dāng)進(jìn)入服務(wù)器界面時(shí),使用者可以開(kāi)啟服務(wù)器,監(jiān)聽(tīng)連接請(qǐng)求,處理用戶發(fā)送過(guò)來(lái)的消息,當(dāng)點(diǎn)擊右上角的推出按鈕時(shí)退出并關(guān)閉所有連接。如圖4所示。圖4-2服務(wù)器管理流程圖4.1.2客戶端在客戶端,用戶首先進(jìn)入登錄窗體,如果IP、端口號(hào)、用戶名、密碼都正確,則進(jìn)入聊天窗口,否則給出相應(yīng)的提示信息。進(jìn)入聊天窗口后可以修改密碼、發(fā)送聊天信息、顯示公告和在線用戶列表。如圖5所示。圖4-3客戶端流程圖4.2編寫(xiě)服務(wù)器端程序4.2.1通訊數(shù)據(jù)包說(shuō)明(格式說(shuō)明,包類型說(shuō)明)格式說(shuō)明packagepub;importjava.io.Serializable;//封裝數(shù)據(jù)的包,它現(xiàn)了java.io.Serializable接口publicclassQQPackageimplementsSerializable{ privateStringfrom;//消息發(fā)送者 privateStringto;//消息接收者 privatePackTypepackType;//包類型 privateObjectdata;//數(shù)據(jù)包}包類型說(shuō)明packagepub;//包類型publicenumPackType{ loginApply,//登陸申請(qǐng) loginSuccess,//登陸成功 loginFail,//登陸失敗 privateChat,私聊 publicChat,//群聊 post,//公告 onlineuser,//在線用戶列表 enforceDown,//強(qiáng)制下線 stopServer,//停止服務(wù) userOffline,//用戶下線 resetPassword,//修改密碼}4.2.2問(wèn)題陳述1.用戶注冊(cè)。2.能夠允許注冊(cè)過(guò)的用戶登錄聊天界面并可以聊天。3.能夠接受私聊信息并發(fā)送給特定的用戶。4.服務(wù)器運(yùn)行在自定義的端口上6000.5.服務(wù)器監(jiān)控用戶列表和用戶聊天信息。6.服務(wù)器踢人,發(fā)送通知。7.服務(wù)器保存日志。4.2.3解決方案服務(wù)器登錄配置Login_JFram這個(gè)類是一個(gè)服務(wù)端登錄窗體,在其中要讀取config.ini中的配置信息,測(cè)試端口是否可用,若可用則創(chuàng)建一個(gè)serversocket,并用login_button_listener這個(gè)類去監(jiān)聽(tīng)按鈕并作出響應(yīng)。服務(wù)端設(shè)計(jì)QQ_Server_JFrame是服務(wù)器主窗體,其中有三個(gè)成員變量分別是Sermanager_JPanel(服務(wù)器管理面板)、UserManager_JPanel(用戶管理面板)、LogsManager_Panel(日志管理面板)。在服務(wù)器管理面板中,有一個(gè)ServerManager_Button_Listener負(fù)責(zé)監(jiān)聽(tīng)按鈕。當(dāng)按下啟動(dòng)服務(wù)器按鈕時(shí),更改圖片,寫(xiě)啟動(dòng)服務(wù)日志,并創(chuàng)建一個(gè)服務(wù)端監(jiān)聽(tīng)客戶連接的線程(Accept_Thread),并啟動(dòng)。在此線程中會(huì)根據(jù)用戶的狀態(tài)創(chuàng)建一個(gè)用于讀取的線程(Server_Read_Thread),它會(huì)根據(jù)包類型做出不同的操作。當(dāng)按下停止服務(wù)按鈕時(shí),停止服務(wù),更改圖片,寫(xiě)停止服務(wù)日志,修改用戶狀態(tài),刷新用戶列表,通知用戶下線,發(fā)stopServer包當(dāng)按下強(qiáng)制用戶下線按鈕時(shí),要判斷用戶ID,封裝強(qiáng)制下線包,關(guān)閉強(qiáng)制下線用戶的線程、流。在用戶管理面板中,用一個(gè)用戶管理面板按鈕的監(jiān)聽(tīng)器(UserManager_Button_Listener)完成查詢用戶,顯示在線用戶列表的顯示,添加新用戶,刪除用戶,修改資料,重設(shè)所有密碼,重設(shè)所選密碼的功能。當(dāng)按下用戶添加按鈕和修改資料按鈕時(shí)創(chuàng)建一個(gè)用戶信息的對(duì)話框,調(diào)用UserInfo_JDialog(UsersManager_JPanelusersManager_JPanel,QQ_Server_JFrameqq_Server_JFrame,intkind)方法。這個(gè)方法會(huì)判斷操作類型,生成一個(gè)存放對(duì)話框內(nèi)容的JPanel,初始化編號(hào)、密碼、注冊(cè)時(shí)間,實(shí)例化UserInfo_Button_Listener(添加用戶和修改用戶對(duì)話框的監(jiān)聽(tīng)器),當(dāng)按下查詢按鈕時(shí),獲取用戶id和姓名,調(diào)用UserDaoImpl(訪問(wèn)數(shù)據(jù)的方法類)的selectList(Stringsid,Stringsname,intstate)方法,這個(gè)方法通過(guò)判斷state將移除密碼后的Vector返回顯示。當(dāng)按下刪除用戶按鈕時(shí),調(diào)用UserDaoImpl的deleteUser(Stringid)方法,刪除用戶數(shù)據(jù)文件中的對(duì)應(yīng)的用戶信息。當(dāng)按下重置所有用戶密碼時(shí),調(diào)用UserDaoImpl的resetAllPWD()方法,這個(gè)方法會(huì)讀取用戶數(shù)據(jù)文件,選出所有用戶的密碼,并設(shè)置成123456。當(dāng)按下重置所選用戶密碼時(shí),調(diào)用UserDaoImpl的resetPWD(Stringid),在這個(gè)方法中會(huì)調(diào)用resetPWD(Stringid,StringnewPWD)方法,將所選用戶的密碼重置為123456。在日志管理面板中生成一個(gè)日期選擇面板、一個(gè)顯示歷史記錄的面板、一個(gè)JComboBox選擇事件的監(jiān)聽(tīng)器combobox_listener和一個(gè)日志面板的按鈕監(jiān)聽(tīng)器button_listener,在combobox中定義了一些JComboBox的選項(xiàng)被選擇時(shí)所做出的響應(yīng)。如獲得月的下拉框要判斷是大月(31天)還是小月(30天),是否是閏年,獲得年的下拉框根據(jù)月份(是否為2月,若是2月,若是閏年則為29天,否則28天)作出處理。在button_listener中寫(xiě)義了一些按鈕按下時(shí)做出的響應(yīng),主要是查詢?nèi)罩疚募?,判斷是否有該天的日志,若有是否有需要的關(guān)鍵字,若有返回讀取到的信息。若沒(méi)有返回對(duì)應(yīng)的提示信息。4.3編寫(xiě)客戶端程序4.3.1通訊數(shù)據(jù)包說(shuō)明(格式說(shuō)明,包類型說(shuō)明)與服務(wù)器端相同,此處省略4.3.2問(wèn)題陳述1.配置端口,ip。2.修改密碼。3.發(fā)送即時(shí)消息。4.聊天記錄5.獲取公告,用戶在線列表。6.退出。4.3.3解決方案首先構(gòu)造一個(gè)登錄窗體QQ_Login_JFrame,在這個(gè)類中生成一個(gè)顯示在登錄窗體上的有圖片的JLable、一個(gè)登錄區(qū)域的JPanel(輸入用戶編號(hào)和密碼)和一個(gè)按鈕區(qū)域的JPanel(設(shè)置、登錄、取消按鈕)以及一個(gè)按鈕事件的監(jiān)聽(tīng)器QQ_Login_Button_Listener,在這個(gè)監(jiān)聽(tīng)器中定義了各個(gè)按鈕按下時(shí)做出的響應(yīng),當(dāng)按下取消按鈕時(shí),退出系統(tǒng),system.exit(0);當(dāng)按下設(shè)置按鈕時(shí),通過(guò)調(diào)用.QQ_Login_JFrame.getButton_NetOption()獲得網(wǎng)絡(luò)設(shè)置面板,如果這個(gè)面板是顯示狀態(tài)就設(shè)置它為不可顯示,如果這個(gè)面板是不顯示狀態(tài)就設(shè)置它為顯示。當(dāng)按下登錄按鈕時(shí),首先獲取ip、斷后號(hào)port,并判斷是否為空,是否合法(代碼如下if(!IP.matches("^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$")){qq_Login_JFrame.getLabel_NetOption().setText("IP不合法,請(qǐng)重新輸入");return;})if(!port.matches("\\d{4,5}")){qq_Login_JFrame.getLabel_NetOption().setText("端口號(hào)應(yīng)為1024~65535之間的整數(shù)");return;}intp=Integer.parseInt(port);if(p<1024&&p>65535){qq_Login_JFrame.getLabel_NetOption().setText("端口號(hào)應(yīng)為1024~65535之間的整數(shù)");return;}),然后判斷用戶名和密碼是否為空。若四項(xiàng)都合法,實(shí)例化一個(gè)socket=newsocket(ip,port);然后獲取數(shù)據(jù)流(objectOutputStream),封裝登錄請(qǐng)求包(Vector<String>IDAndPsw=newVector<String>(); IDAndPsw.add(ID); IDAndPsw.add(psw); QQPackageqqPackageCheck=newQQPackage(); qqPackageCheck.setPackType(PackType.loginApply); qqPackageCheck.setData(IDAndPsw); objectOutputStream.writeObject(qqPackageCheck); objectOutputStream.flush();)//收取服務(wù)器返的信息 QQPackageqqPackageReturn=null; qqPackageReturn=(QQPackage)objectInputStream.readObject(); PackTypepackType=qqPackageReturn.getPackType(); StringreturnInfo=qqPackageReturn.getData().toString();//登錄失敗 if(packType==PackType.loginFail){ JOptionPane.showMessageDialog(qq_Login_JFrame,returnInfo+"累計(jì)三次登錄失敗后,程序?qū)⑼顺?,您還可以操作:"+(3-wrongCount)+"次");//登錄成功 }elseif(packType==PackType.loginSuccess){ //把當(dāng)次輸入的號(hào)碼增加到文件,實(shí)現(xiàn)記錄輸入號(hào)碼的功能 qq_Login_JFrame.autoAppendID(); qq_Login_JFrame.dispose(); newQQ_Chat_JFrame(socket,qqPackageReturn,objectOutputStream,objectInputStream);這樣經(jīng)進(jìn)入了聊天主窗口(QQ_Chat_JFrame)。在QQ_Chat_JFrame中生成一個(gè)客戶端讀取線程,在這個(gè)線程中會(huì)根據(jù)獲取的不同包的不同類型做出不同的響應(yīng)。具體代碼如下://聊天包 if(packType==PackType.publicChat){ Stringmessage=object.toString(); qq_Chat_JFrame.getTextArea_Dsp().append(message); qq_Chat_JFrame.getTextArea_ChatLogs().append(message);//在線用戶列表包 }elseif(packType==PackType.onlineuser){ DefaultListModeldefaultListModel=(DefaultListModel)qqPackageRec.getData(); qq_Chat_JFrame.getList_OnlineUsers().setModel(defaultListModel); qq_Chat_JFrame.validate();//服務(wù)器停止包 }elseif(packType==PackType.stopServer){ Stringmessage=qqPackageRec.getData().toString(); JOptionPane.showMessageDialog(qq_Chat_JFrame,message); qq_Chat_JFrame.dispose(); System.exit(0);//公告包 }elseif(packType==PackType.post){ Stringmessage=qqPackageRec.getData().toString(); qq_Chat_JFrame.getTextArea_Notice().setText(message);//下線包 }elseif(packType==PackType.enforceDown){ Stringmessage=qqPackageRec.getData().toString(); JOptionPane.showMessageDialog(qq_Chat_JFrame,message); System.exit(0);//密碼修改回復(fù)包 }elseif(packType==PackType.resetPassword){ Stringmessage=qqPackageRec.getData().toString(); if("密碼修改成功!請(qǐng)牢記新密碼!".equals(message)){ qq_Chat_JFrame.getResetPassword_JDialog().getLabel_Message().setText(""); JOptionPane.showMessageDialog(qq_Chat_JFrame,message); qq_Chat_JFrame.getResetPassword_JDialog().dispose(); }else{ qq_Chat_JFrame.getResetPassword_JDialog().getLabel_Message().setText(message); } }在QQ_Chat_JFrame中生成一個(gè)具有公告信息和在線用戶列表的JSplitPane(包含一個(gè)Jlist選中事件的監(jiān)聽(tīng)器類.QQ_Chat_List_Listener),生成一個(gè)聊天為主功能的JPanel(包含一個(gè)按鈕監(jiān)聽(tīng)類QQ_Chat_Button_Listener),生成一個(gè)聊天記錄面板,它默認(rèn)是不可見(jiàn)的。Jlist選中事件的監(jiān)聽(tīng)器類.QQ_Chat_List_Listener定義了列表選中時(shí)做的響應(yīng),將接收者的標(biāo)簽設(shè)置成列表選中的項(xiàng)。按鈕監(jiān)聽(tīng)類QQ_Chat_Button_Listener根據(jù)各個(gè)按鈕做出不同的響應(yīng):當(dāng)按下聊天記錄按鈕,如果聊天記錄面板使顯示狀態(tài),設(shè)置為不可顯示狀態(tài),并調(diào)整此面板的大小,如果聊天記錄面板使不顯示狀態(tài),設(shè)置為可顯示狀態(tài),并調(diào)整此面板的大小。當(dāng)按下發(fā)送按鈕獲取選中的用戶,并判,斷是否為空是否為自己,判斷消息是否為空,是否太長(zhǎng),如果都滿足,則更具是否私聊封裝不同的消息包,然后發(fā)送。當(dāng)按下關(guān)閉按鈕發(fā)送退出消息包,關(guān)閉系統(tǒng)當(dāng)按下修改密碼按鈕,構(gòu)造一個(gè)具有指定擁有者的修改密碼對(duì)話框,并添加一個(gè)按鈕事件的監(jiān)聽(tīng)器類,如果點(diǎn)擊確認(rèn)按鈕,就驗(yàn)證兩個(gè)新密碼是否一樣,若一樣就發(fā)送修改密碼包。

5系統(tǒng)實(shí)現(xiàn)5.1服務(wù)端5.1.1服務(wù)器啟動(dòng)配置這個(gè)窗體主要作用是測(cè)試端口是否可用,如果可用則會(huì)把端口號(hào)保存在config.ini文件中。點(diǎn)擊進(jìn)入服務(wù)器按鈕則會(huì)進(jìn)入服務(wù)主窗體。如圖6所示:圖5-1服務(wù)器配置5.1.2服務(wù)端主窗口這個(gè)窗體是服務(wù)主窗體,在這個(gè)窗體上有三個(gè)面板,分別為服務(wù)器管理、用戶管理。日志管理。服務(wù)器管理面板,這個(gè)面板完成了顯示在線用戶、顯示通訊消息、顯示在線用戶人數(shù)、發(fā)送公告、啟動(dòng)服務(wù)器、關(guān)閉服務(wù)器、強(qiáng)制用戶下線的功能。如圖7所示:圖5-2服務(wù)器管理服務(wù)器管理面板,這個(gè)面板完成了顯示用戶信息、查詢用戶、添加用戶、刪除用戶、修改資料重置所選密碼、重置所有密碼。如圖8所示:圖5-3用戶管理日志查詢面板主要完成了對(duì)日志文件的搜索,可以按照時(shí)間搜索或關(guān)鍵字搜索。如圖9所示:圖5-4日志管理5.2客戶端5.2.1客戶端登陸登陸窗體,通過(guò)讀取user.txt文件中的第一行顯示為QQ號(hào)碼,密碼全部默認(rèn)為123456,如果帳號(hào)和密碼都正確,點(diǎn)擊登錄則進(jìn)入聊天窗體。如圖10所示:圖5-5用戶登錄5.2.2客戶端配置當(dāng)用戶點(diǎn)擊設(shè)置按鈕時(shí)可以配置服務(wù)器地址和端口號(hào)。如圖11所示:圖5-6用戶配置5.2.3客戶端聊天主窗口在這個(gè)窗口中,會(huì)顯示公告信息和在線用戶,若選中的是“所有人”則開(kāi)始群聊天,若選中的是某個(gè)人則為私聊,不可以和自己聊天。如圖12所示:圖5-7聊天主窗口當(dāng)點(diǎn)擊聊天記錄時(shí)會(huì)顯示登錄用戶的所有聊天記錄。如圖13所示:圖5-8聊天記錄5.2.4客戶端修改密碼當(dāng)用戶點(diǎn)擊修改密碼按鈕時(shí),會(huì)彈出修改密碼對(duì)話框。如果原密碼正確且新密碼合法,則會(huì)成功修改密碼。如圖14所示:圖5-9修改密碼

致謝在當(dāng)今電腦網(wǎng)絡(luò)密布的世界當(dāng)中,一個(gè)簡(jiǎn)單高效的局域網(wǎng)通信工具是如此的具有實(shí)用性,所以我們應(yīng)當(dāng)重視對(duì)它的相關(guān)研究與開(kāi)發(fā)。在這次的畢業(yè)設(shè)計(jì)中,我應(yīng)用了JAVA開(kāi)發(fā)工具在WINDOWS平臺(tái)上開(kāi)發(fā)了一個(gè)基于WINDOWS平臺(tái)的局域網(wǎng)通信工具,在這一重要的領(lǐng)域進(jìn)行了相關(guān)的實(shí)踐,不管是對(duì)我的研究能力,還是實(shí)際動(dòng)手能力,還是資料查閱能力,都起了相當(dāng)大的益處。所以,我決定認(rèn)真總結(jié)這次畢業(yè)設(shè)計(jì)的經(jīng)驗(yàn),以及學(xué)習(xí)到的知識(shí),來(lái)更加的充實(shí)自己的頭腦和完善自己的知識(shí)結(jié)構(gòu)。系統(tǒng)著重研究并實(shí)現(xiàn)了網(wǎng)絡(luò)應(yīng)用的部分。根據(jù)實(shí)現(xiàn)的情況看,具有較友好的聊天界面生成效果,以及流暢的網(wǎng)絡(luò)通信效果。最后,衷心地感謝院領(lǐng)導(dǎo)為我們提供了優(yōu)越的設(shè)計(jì)環(huán)境,并給予我們的莫大關(guān)心和鼓勵(lì);衷心地感謝老師在百忙中對(duì)我的悉心指導(dǎo),在理論和實(shí)踐上給予我的巨大幫助,使得畢業(yè)設(shè)計(jì)和論文得以順利進(jìn)行并完成;同時(shí)也感謝老師在生活和工作中對(duì)我的指導(dǎo)和關(guān)心;也衷心地感謝同學(xué)們?cè)谖矣龅嚼щy時(shí)對(duì)我的幫助。在此,我謹(jǐn)以最誠(chéng)摯的心情,表達(dá)我衷心的感謝。

參考文獻(xiàn)[1]劉永華,Java網(wǎng)絡(luò)編程,清華大學(xué)出版社2008[2]張虹軟件工程與軟件開(kāi)發(fā)工具清華大學(xué)出版社2009[3]BruceEckelThinkinginJava機(jī)械工業(yè)出版社2009[4]羅軍舟TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)清華大學(xué)出版社2008[5]孫一林彭波Java網(wǎng)程實(shí)例清華大學(xué)出版社2003[6]李樹(shù)青Java通用范例開(kāi)發(fā)金典電子工業(yè)出版社2009[7]王鵬JavaSwing圖形界面開(kāi)發(fā)與案例詳解清華大學(xué)出版社2008[8]龐永慶翟鵬Java完全自學(xué)寶典清華大學(xué)出版社2008基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無(wú)功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究H

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論