freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java基于tcpip協(xié)議的聊天工具的設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)論文-文庫吧資料

2025-06-05 01:05本頁面
  

【正文】 供聊天服務(wù)為主要目標(biāo),所以所設(shè)計(jì)的數(shù)據(jù)庫表只有簡單的兩張,一張用來存儲用戶信息,一張用來存儲用戶的聊天信息,如下圖35,36所示,圖35 用戶信息表用戶信息表主要包括了用戶名、密碼、年齡、性別、郵箱5個(gè)數(shù)據(jù),分別用來存儲用戶的用戶名、密碼、年齡、性別、郵箱。相應(yīng)的客戶端的設(shè)計(jì)要比服務(wù)器簡單,Login類負(fù)責(zé)實(shí)現(xiàn)登陸,Register類負(fù)責(zé)實(shí)現(xiàn)用戶注冊,ChatRoom類實(shí)現(xiàn)用戶的聊天功能,其中ChatRoom單獨(dú)用一個(gè)線程來處理其具體的操作。 架構(gòu)設(shè)計(jì)本系統(tǒng)中,服務(wù)器端設(shè)計(jì)兩個(gè)線程,一個(gè)用來處理客戶端連接請求的監(jiān)聽線程,一旦監(jiān)聽到Socket連接請求,服務(wù)器便進(jìn)入Connection線程工作,處理客戶端相應(yīng)請求的操作,比如登陸、注冊、發(fā)送消息、退出等操作。協(xié)議設(shè)計(jì)就是規(guī)定服務(wù)器的IP和默認(rèn)的端口號(PORT),服務(wù)器在該IP和端口號監(jiān)聽客戶端的連接請求。用戶登陸聊天時(shí),將實(shí)現(xiàn)統(tǒng)一的用戶登陸驗(yàn)證機(jī)制。本系統(tǒng)在架構(gòu)設(shè)計(jì)上將分成3個(gè)層次,如下圖35所示,圖35 聊天系統(tǒng)設(shè)計(jì)層次模型圖本系統(tǒng)最底層的是Socket通信層,負(fù)責(zé)將客戶端與服務(wù)器之間連接起來,并建立I/O通道,實(shí)現(xiàn)客戶端與服務(wù)器的數(shù)據(jù)傳輸。 系統(tǒng)設(shè)計(jì) 設(shè)計(jì)原則考慮到系統(tǒng)的可重用性和易維護(hù)性,需要將本系統(tǒng)的網(wǎng)絡(luò)底層通信和應(yīng)用系統(tǒng)分開,做到結(jié)構(gòu)分明、各功能模塊清晰??蛻舳斯ぷ髂J饺缦聢D34所示,圖34 客戶端工作模式圖示首先我們會啟動(dòng)客戶端,進(jìn)入類似登陸的登陸界面Login,上面有登陸用戶名和密碼輸入框和登陸按鈕,如果用戶輸入正確的用戶名和密碼就會直接進(jìn)入ChatRoom,如果此時(shí)有其他在線用戶,用戶就可以與他們進(jìn)行即時(shí)聊天了。注冊是對用戶開放注冊功能,從而能讓注冊過的用戶進(jìn)入聊天室。然后服務(wù)器便會執(zhí)行相應(yīng)線程里面相應(yīng)的操作流程,比如用戶登陸、用戶注冊、用戶聊天信息轉(zhuǎn)發(fā)等等。服務(wù)器功能具體的實(shí)現(xiàn)方式如下圖33所示,圖33 服務(wù)器工作模式圖示開啟服務(wù)器時(shí)會進(jìn)入服務(wù)器控制主界面,上面標(biāo)明了服務(wù)器的IP、端口號等重要信息,管理者可以點(diǎn)擊開啟按鈕啟動(dòng)服務(wù)器。服務(wù)器與客戶端連接和傳遞數(shù)據(jù)具體實(shí)現(xiàn)的原理如下圖32所示:圖32服務(wù)器與客戶端實(shí)現(xiàn)數(shù)據(jù)交互通信原理圖 各個(gè)模塊功能詳解 服務(wù)器端結(jié)構(gòu)服務(wù)器的工作主要是負(fù)責(zé)對客戶端請求的不斷監(jiān)聽,它一直處于擁塞狀態(tài),直到有客戶端發(fā)出連接請求為止。綜合以上因素,我對本次畢業(yè)設(shè)計(jì)所要做的的工作做了以下的總結(jié):在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。本次畢業(yè)設(shè)計(jì)的聊天軟件所用到的是C/S模式,即需要一個(gè)服務(wù)器和一個(gè)客戶端項(xiàng)目,最后兩個(gè)項(xiàng)目完成通信過程。 系統(tǒng)功能需求既然該課題的可行性是已經(jīng)確定,那么我們就可以開始分析其具體的功能需求。綜上所述,本系統(tǒng)的設(shè)計(jì)與開發(fā)在經(jīng)濟(jì)上、軟件上和硬件設(shè)備上的條件都是滿足的。運(yùn)行可行性:本系統(tǒng)為一個(gè)小型的局域網(wǎng)聊天系統(tǒng),所耗費(fèi)的資源比較少,只要安裝了運(yùn)行該程序所必要的軟件后,就目前的電腦,都是能夠運(yùn)行的。技術(shù)可行性:本系統(tǒng)的開發(fā)是利用 SQL Server 2005作為本系統(tǒng)的后臺數(shù)據(jù)庫的,它是一個(gè)支持多用戶的新型數(shù)據(jù)庫,適用于中小規(guī)模的數(shù)據(jù)量需求。第三章 系統(tǒng)分析與設(shè)計(jì) 系統(tǒng)分析 系統(tǒng)可行性分析經(jīng)濟(jì)可行性:由于本系統(tǒng)的主要背景是畢業(yè)設(shè)計(jì),不考慮到直接的經(jīng)濟(jì)效益和其后的商業(yè)發(fā)展,而只在于注重自身水平和能力的提高。 AWT組件AWT 是Abstract Window Toolkit (抽象窗口工具包)的縮寫,這個(gè)工具包提供了一套與本地圖形界面進(jìn)行交互的接口。JDBC由一組用Java語言編寫的類和接口組成,通過調(diào)用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數(shù)據(jù)庫,從而可使用標(biāo)準(zhǔn)的SQL語言來存取數(shù)據(jù)庫中的數(shù)據(jù),不必再為每一種數(shù)據(jù)庫系統(tǒng)編寫不同的Java代碼。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)的類庫。 JDK(Java Development Kit)是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。本次畢業(yè)設(shè)計(jì)所要用到的組件包括Eclipse平臺,JDK ,AWT組件庫,SQL Server 2005等。也就是說在Java環(huán)境下,我們使用TCP/IP協(xié)議的網(wǎng)絡(luò)編程需要采用Socket機(jī)制。Socket所支持的協(xié)議不光有TCP/IP,還有UDP。Socket通常用來實(shí)現(xiàn)客戶端和服務(wù)器的連接。 在C/S模式中,作為客戶機(jī)的計(jì)算機(jī)都要安裝客戶機(jī)程序,一旦軟件系統(tǒng)升級,每臺客戶機(jī)都要安裝客戶機(jī)程序,系統(tǒng)升級和維護(hù)較為復(fù)雜。 C/S模式配備的是點(diǎn)對點(diǎn)的結(jié)構(gòu)模式,適用于局域網(wǎng),有可靠的安全性。在C/S模式的工作過程中,客戶機(jī)程序發(fā)出請求,服務(wù)器程序接收并且處理客戶機(jī)程序提出的請求,然后返回結(jié)果。就使用UDP發(fā)消息,因此有時(shí)會出現(xiàn)你發(fā)送了消息后,會出現(xiàn)發(fā)送消息失敗的結(jié)果。正因?yàn)閁DP協(xié)議沒有連接的過程,所以它的通信效率高。例如,在默認(rèn)狀態(tài)下,一次“ping”操作發(fā)送4個(gè)數(shù)據(jù)包,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因?yàn)閷Ψ街鳈C(jī)收到后會發(fā)回一個(gè)確認(rèn)收到的數(shù)據(jù)包)。它是“面向非連接”的協(xié)議,它不會與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。這與現(xiàn)在流行的手機(jī)短信非常相似:你在發(fā)短信的時(shí)候,只需要輸入對方手機(jī)號就OK了,至于對方能否收到,這就不是我們的事情了,一切都交給網(wǎng)絡(luò)處理。以下是三次“握手”的概念圖21:圖21 三次“握手”協(xié)議概念圖TCP協(xié)議能為應(yīng)用程序提供可靠的通信連接,使一臺計(jì)算機(jī)發(fā)出的字節(jié)流無差錯(cuò)地發(fā)往網(wǎng)絡(luò)上的其他計(jì)算機(jī),對可靠性要求高的數(shù)據(jù)通信系統(tǒng)往往使用TCP協(xié)議傳輸數(shù)據(jù)。我們來看看這三次“握手”的簡單過程:主機(jī)A向主機(jī)B發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次“握手”;主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)?”,這是第二次“握手”;主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次“握手”。TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。 面向連接的TCP “面向連接”就是在正式通信前必須要與對方建立起連接。一般來說,TCP對應(yīng)的是可靠性要求高的應(yīng)用,而UDP對應(yīng)的則是可靠性要求低、傳輸經(jīng)濟(jì)的應(yīng)用。通過面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。 TCP/UDP協(xié)議TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)屬于傳輸層協(xié)議。那么,我們在一個(gè)程序中要實(shí)現(xiàn)的功能就可以劃分為多個(gè)線程來分別實(shí)現(xiàn),這大大降低了一個(gè)程序的復(fù)雜性,也提高了程序的處理效率。Datagram是更低級的網(wǎng)絡(luò)傳輸方式,它把數(shù)據(jù)目的地記錄在包中,并把數(shù)據(jù)分成若干塊記錄在固定大小的數(shù)據(jù)包中,然后直接放在網(wǎng)絡(luò)上傳遞到目的端,至于你到底傳送成功與否,這就沒它的事了。Java提供的網(wǎng)絡(luò)功能有三大類: URL, Socket, Datagram:URL是三大功能中最高級的一種,通過URL Java程序可以直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù)。 IP地址:TCP/IP網(wǎng)絡(luò)中的每臺計(jì)算機(jī)都有唯一的地址IP地址。 Java與InternetJava語言取得成功的領(lǐng)域之一就是其他語言數(shù)頁代碼==Java一條語句。執(zhí)行效率Java的字節(jié)碼需要經(jīng)過Java虛擬機(jī)JVM解釋成機(jī)器碼才能執(zhí)行,所以速度上較慢。多線程Java具備內(nèi)建的多線程功能,可以將一個(gè)程序的不同程序段設(shè)置為不同的線程,使各線程并發(fā)、獨(dú)立執(zhí)行,提高系統(tǒng)的運(yùn)行效率。Java源程序經(jīng)過編譯后生成字節(jié)碼文件,而字節(jié)碼與具體的計(jì)算機(jī)無關(guān)。Java提供了許多安全機(jī)制來保證其網(wǎng)絡(luò)適用上的安全性。安全性Java是可以用在網(wǎng)絡(luò)及分布環(huán)境下的網(wǎng)絡(luò)程序設(shè)計(jì)語言。在Java之前雖然已經(jīng)有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言問世,但如C++這樣的開發(fā)語言并不是完全的面向?qū)ο?,而是面向過程和面向?qū)ο蟮幕旌象w。由于Java最初是為了對家用電器進(jìn)行集成控制而設(shè)計(jì)的,因而具備簡單明了的特征。 Java特點(diǎn)Java是一種簡單、安全、容易適用、面向?qū)ο?、可移置、高性能、多線程的語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。它采用了大部分與C++類似的語法對可能具備危險(xiǎn)性的功能加以改進(jìn),例如將內(nèi)存管理改為由語言自己進(jìn)行管理,以減少程序員的負(fù)擔(dān)及可能發(fā)生的錯(cuò)誤。面包機(jī)上的程序錯(cuò)誤可能使面包機(jī)燒壞甚至爆炸。尤其在內(nèi)存管理方面,C++采用直接地址訪問方式,需要程序員記錄并管理內(nèi)存資源。起初他用具有面向?qū)ο筇卣鞯腃++語言編寫嵌入式軟件,可以放在面包機(jī)或PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)等小型電子產(chǎn)品里,以使設(shè)備變得更為“聰明”,更具備人工只能。當(dāng)時(shí)Sun Microsystems公司為了發(fā)展消費(fèi)類電子產(chǎn)品進(jìn)行了一個(gè)名為Green的項(xiàng)目計(jì)劃。本課題的最終目標(biāo)是實(shí)現(xiàn)局域網(wǎng)的即時(shí)通訊,包括點(diǎn)對點(diǎn)、點(diǎn)對多、多對多的相互通訊,最后以一臺主機(jī)作為服務(wù)器,另外用不同的主機(jī)作為客戶端進(jìn)行試驗(yàn)驗(yàn)證,能夠?qū)崿F(xiàn)相互間的文字通訊。 課題目的和目標(biāo)本課題的目的旨在探究TCP/UDP通信的機(jī)制和原理,由于在大學(xué)期間并沒有對TCP/UDP通信進(jìn)行系統(tǒng)的專業(yè)的學(xué)習(xí),所以,對于TCP/UDP通信并沒有太多的了解,而當(dāng)前的通信網(wǎng)絡(luò)的廣泛應(yīng)用,又讓研究其內(nèi)在的運(yùn)作模式和機(jī)制變得非常有意義的一件事情。 課題內(nèi)容、目的及目標(biāo) 課題內(nèi)容本課題主要是用Java下的Socket研究局域網(wǎng)通信,并利用Socket編寫一個(gè)可以供多人通信的局域網(wǎng)聊天軟件,此聊天軟件分為服務(wù)器程序和客戶端程序兩個(gè)獨(dú)立的工程項(xiàng)目。這些通訊軟件各具特色,實(shí)現(xiàn)方面各有所長,但由于他們在商業(yè)運(yùn)營階段,其實(shí)現(xiàn)的具體內(nèi)部機(jī)制,我們不得而知,但是無論他們是怎么實(shí)現(xiàn)的,最終也逃不過TCP/IP,UDP通訊的本質(zhì)。比如單一TCP通信的MSN,在穩(wěn)定傳輸和安全性上是可圈可點(diǎn)的。 課題現(xiàn)狀及發(fā)展 課題現(xiàn)狀基于局域網(wǎng)的即時(shí)通訊工具,實(shí)際上是通訊領(lǐng)域中一個(gè)微縮版本的通信軟件,廣域網(wǎng)的即時(shí)通訊工具采用TCP或者UDP或者TCP、UDP并用的方式來實(shí)現(xiàn)通訊?;赟ocket的局域網(wǎng)通信軟件在目前來說是相當(dāng)廣泛的,不但滿足了傳統(tǒng)的通信需求,還可以擴(kuò)展其應(yīng)用范圍,以適應(yīng)更多更大范圍的需求。 課題意義研究本課題的主要目的在于了解當(dāng)前通訊軟件的通信模式,并試著開發(fā)一個(gè)能夠?qū)崿F(xiàn)局域網(wǎng)通信的局域網(wǎng)即時(shí)通信軟件,通過這個(gè)過程,讓自己更加了解在Java下,實(shí)現(xiàn)通信的具體原理和工作流程。其具體工作方式經(jīng)過本人理解畫出如下11示意圖,圖 11 騰訊工作模式示意圖而提到大家也非常熟悉的MSN,通過網(wǎng)絡(luò)了解到,它是另一種工作模式,純TCP通信,而不像騰訊一樣TCP和UDP并用,其工作模式如下圖12所示,圖12 MSN通信模式示意圖我們會看出,MSN
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1