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

正文內(nèi)容

java基于tcp_ip協(xié)議的聊天工具的設(shè)計(jì)與開(kāi)發(fā)_畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-10-02 17:54 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 器 2客 戶 端 3 圖 12 MSN 通信模式示意圖 我們會(huì)看出, MSN 這種通信其實(shí)就是 TCP 通信,而 TCP 通信就是通過(guò)服務(wù)器轉(zhuǎn)發(fā)消息來(lái)實(shí)現(xiàn)客戶端之間通信的,當(dāng)客戶端 1 要和客戶端 2 取得聯(lián)系時(shí),必須通過(guò)中間服務(wù)器 1 或者 2 來(lái)實(shí)現(xiàn)信息的轉(zhuǎn)發(fā),而服務(wù)器在這里的角色其實(shí)就是一個(gè)中轉(zhuǎn)站了。這很像我們的電話網(wǎng)絡(luò),中轉(zhuǎn)通信模式。 課題意義 研究本課題的主要目的在于了解當(dāng)前通訊軟件的通信 模式,并試著開(kāi)發(fā)一個(gè)能夠?qū)崿F(xiàn)局域網(wǎng)通信的局域網(wǎng)即時(shí)通信軟件,通過(guò)這個(gè)過(guò)程,讓自己更加了解在 Java下,實(shí)現(xiàn)通信的具體原理和工作流程。 本系統(tǒng)應(yīng)用了基于 Socket 局域網(wǎng)通信模式,它為我們提供了一種良好的、安全的通信機(jī)制,而且這個(gè)在實(shí)踐中更好的詮釋了 Socket 的通信的根本原理,具有很好的學(xué)習(xí)和研究?jī)r(jià)值,可以更深入地提高本人對(duì)于 Socket 通信機(jī)制的理解和認(rèn)識(shí)。 基于 Socket 的局域網(wǎng)通信軟件在目前來(lái)說(shuō)是相當(dāng)廣泛的,不但滿足了傳統(tǒng)的通信需求,還可以擴(kuò)展其應(yīng)用范圍,以適應(yīng)更多更大范圍的需求。所以其研究?jī)r(jià)值也是 非??捎^的。 課題現(xiàn)狀及發(fā)展 課題現(xiàn)狀 基于局域網(wǎng)的即時(shí)通訊工具,實(shí)際上是通訊領(lǐng)域中一個(gè)微縮版本的通信軟件, 4 廣域網(wǎng)的即時(shí)通訊工具采用 TCP 或者 UDP 或者 TCP、 UDP 并用的方式來(lái)實(shí)現(xiàn)通訊。目前來(lái)說(shuō),開(kāi)發(fā)技術(shù)是非常成熟的了,比如騰訊 ,微軟 MSN,新浪 UC 等,這些通訊工具都實(shí)現(xiàn)了廣域網(wǎng)的即時(shí)通訊,但他們卻也各具特色。比如單一 TCP 通信的 MSN,在穩(wěn)定傳輸和安全性上是可圈可點(diǎn)的。而騰訊的 ,在功能上則是非常全面的,因?yàn)槠淇蛻舳藭r(shí)間通訊采用 UDP 方式,所以通訊顯得非常的流暢和方便,也大大減 輕了服務(wù)器的負(fù)荷。這些通訊軟件各具特色,實(shí)現(xiàn)方面各有所長(zhǎng),但由于他們?cè)谏虡I(yè)運(yùn)營(yíng)階段,其實(shí)現(xiàn)的具體內(nèi)部機(jī)制,我們不得而知,但是無(wú)論他們是怎么實(shí)現(xiàn)的,最終也逃不過(guò) TCP/IP, UDP 通訊的本質(zhì)。 課題發(fā)展 鑒于當(dāng)前這種朝氣蓬勃的發(fā)展勢(shì)頭,在未來(lái)的即時(shí)通訊領(lǐng)域,不管是局域網(wǎng)還是廣域網(wǎng),必定會(huì)更加的精彩,或許在不久的將來(lái),通訊模式會(huì)更加的發(fā)達(dá)和方便于人類社會(huì)。 課題內(nèi)容、目的及目標(biāo) 課題內(nèi)容 本課題主要是用 Java 下的 Socket 研究局域網(wǎng)通信,并利用 Socket 編寫(xiě)一個(gè)可以供多人通 信的局域網(wǎng)聊天軟件,此聊天軟件分為服務(wù)器程序和客戶端程序兩個(gè)獨(dú)立的工程項(xiàng)目。他們各自負(fù)責(zé)相應(yīng)的工作,從而實(shí)現(xiàn)局域網(wǎng)各個(gè)客戶端之間的相互通訊。 課題目的和目標(biāo) 本課題的目的旨在探究 TCP/UDP 通信的機(jī)制和原理,由于在大學(xué)期間并沒(méi)有對(duì)TCP/UDP 通信進(jìn)行系統(tǒng)的專業(yè)的學(xué)習(xí),所以,對(duì)于 TCP/UDP 通信并沒(méi)有太多的了解,而當(dāng)前的通信網(wǎng)絡(luò)的廣泛應(yīng)用,又讓研究其內(nèi)在的運(yùn)作模式和機(jī)制變得非常有意義的一件事情。目前來(lái)說(shuō),通信工具是非常的成熟了,本次畢業(yè)設(shè)計(jì)做的這個(gè)關(guān)于 TCP/UDP 通信的局域網(wǎng)聊天系統(tǒng)也不可 能實(shí)現(xiàn)相應(yīng)的經(jīng)濟(jì)價(jià)值,旨在本人在大學(xué)的最后階段有一個(gè)更好的收獲,能夠?qū)W到到很多以前沒(méi)學(xué)過(guò)的新東西,吸取到更多的知識(shí)充實(shí)自己對(duì)于計(jì)算機(jī)這門(mén)學(xué)科認(rèn)識(shí)和研究。 5 本課題的最終目標(biāo)是實(shí)現(xiàn)局域網(wǎng)的即時(shí)通訊,包括點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多、多對(duì)多的相互通訊,最后以一臺(tái)主機(jī)作為服務(wù)器,另外用不同的主機(jī)作為客戶端進(jìn)行試驗(yàn)驗(yàn)證,能夠?qū)崿F(xiàn)相互間的文字通訊。 6 第二章 開(kāi)發(fā)技術(shù)和平臺(tái) 開(kāi)發(fā)技術(shù) Java 語(yǔ)言 Java 發(fā)展歷程 Java 的發(fā)展歷史,可以追朔到 1990 年。當(dāng)時(shí) Sun Microsystems 公司為 了發(fā)展消費(fèi)類電子產(chǎn)品進(jìn)行了一個(gè)名為 Green 的項(xiàng)目計(jì)劃。這個(gè)計(jì)劃的負(fù)責(zé)任是 James Gosling。起初他用具有面向?qū)ο筇卣鞯?C++語(yǔ)言編寫(xiě)嵌入式軟件,可以放在面包機(jī)或 PDA( Personal Digital Assistant,個(gè)人數(shù)字 助理 )等小型電子 產(chǎn)品 里,以使設(shè)備變得更為 “聰明 ”,更具備人工只能。但后來(lái)發(fā)現(xiàn) C++并不適合這類任務(wù);因?yàn)?C++常會(huì)使系統(tǒng)失效。尤其在內(nèi)存管理方面, C++采用直接地址訪問(wèn)方式 , 需要程序員記錄并管理內(nèi)存資源。這造成程序員編程的極大負(fù)擔(dān),并可能產(chǎn)生多個(gè) Bugs。面包機(jī)上的程序錯(cuò) 誤可能使面包機(jī)燒壞甚至爆炸。 為了解決此類問(wèn)題, Gosling 決定開(kāi)發(fā)一種新的語(yǔ)言,并取名為 Oak。它采用了大部分與 C++類似的語(yǔ)法對(duì)可能具備危險(xiǎn)性的功能加以改進(jìn),例如將內(nèi)存管理改為由語(yǔ)言自己進(jìn)行管理,以減少程序員的負(fù)擔(dān)及可能發(fā)生的錯(cuò)誤。 Oak 是一種可移置的語(yǔ)言,它是一種平臺(tái)獨(dú)立的語(yǔ)言,能夠在各種芯片上執(zhí)行,可以降低設(shè)備的研發(fā)成本。 Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專業(yè)社群。在全球 云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下, Java 更具備了顯著優(yōu)勢(shì)和廣闊前景。 Java 特點(diǎn) Java 是一種簡(jiǎn)單、安全、容易適用、面向?qū)ο?、可移置、高性能、多線程的語(yǔ) 7 言。 簡(jiǎn)單性 Java 語(yǔ)言簡(jiǎn)單高效,基本 Java 系統(tǒng)(編譯器和解釋器)所占空間很少。由于 Java最初是為了對(duì)家用電器進(jìn)行集成控制而設(shè)計(jì)的,因而具備簡(jiǎn)單明了的特征。 面向?qū)ο? 面向?qū)ο蠹夹g(shù)是現(xiàn)代工業(yè)的一次革新,提高了軟件的模塊化程度和復(fù)用率,縮短了軟件開(kāi)發(fā)時(shí)間,降低了開(kāi)發(fā)成本。在 Java 之前雖然已經(jīng)有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言問(wèn)世,但 如 C++這樣的開(kāi)發(fā)語(yǔ)言并不是完全的面向?qū)ο?,而是面向過(guò)程和面向?qū)ο蟮幕旌象w。 Java 則是完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 安全性 Java 是可以用在網(wǎng)絡(luò)及分布環(huán)境下的網(wǎng)絡(luò)程序設(shè)計(jì)語(yǔ)言。在網(wǎng)絡(luò)環(huán)境下,語(yǔ)言的安全性變得更為重要。 Java 提供了許多安全機(jī)制來(lái)保證其網(wǎng)絡(luò)適用上的安全性。 平臺(tái)獨(dú)立 平臺(tái)獨(dú)立指程序不受操作平臺(tái)的限制,可以應(yīng)用在各種平臺(tái)上。 Java 源程序經(jīng)過(guò)編譯后生成字節(jié)碼文件,而字節(jié)碼與具體的計(jì)算機(jī)無(wú)關(guān)。只要計(jì)算機(jī)安裝了能解釋執(zhí)行字節(jié)碼的 Java 虛擬機(jī) JVM,就可以執(zhí)行字節(jié)碼文件,從而實(shí)現(xiàn) Java 的平臺(tái)獨(dú)立性。 多線程 Java 具備內(nèi)建的多線程功能,可以將一個(gè)程序的不同程序段設(shè)置為不同的線程,使各線程并發(fā)、獨(dú)立執(zhí)行,提高系統(tǒng)的運(yùn)行效率。 網(wǎng)絡(luò)功能 Java 能從全球網(wǎng)絡(luò)資源獲取所需信息,如數(shù)據(jù)文件、影響文件、聲音文件等,并對(duì)所得信息進(jìn)行處理,所以說(shuō) Java 是一種網(wǎng)絡(luò)語(yǔ)言。 執(zhí)行效率 Java 的字節(jié)碼需要經(jīng)過(guò) Java 虛擬機(jī) JVM 解釋成機(jī)器碼才能執(zhí)行,所以速度上較慢。但是隨著 JVM 技術(shù)的進(jìn)步,使得其執(zhí)行速度直逼 C 與 C++。 Java 與 Inter Java 語(yǔ)言取得成功的領(lǐng)域 之一就是其他語(yǔ)言數(shù)頁(yè)代碼 ==Java 一條語(yǔ)句 。 8 TCP/IP(傳輸控制協(xié)議 /網(wǎng)間協(xié)議 )是 Inter 的主要協(xié)議 ,定義了計(jì)算機(jī)和外設(shè)進(jìn)行通信所使用的規(guī)則 (應(yīng)用層 ,傳輸層 ,網(wǎng)絡(luò)層 ,鏈路層 ), 大多數(shù)基于 Inter 的應(yīng)用程序被看作 TCP/IP 協(xié)議的上一層 . 如 : ftp, , smtp,tel 等 。 IP 地址 :TCP/IP 網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)都有唯一的地址 IP 地址 。 在 Java 中 ,有一個(gè)用來(lái)存儲(chǔ) Inter 地址的類叫 IAddress。 Java 提供的網(wǎng)絡(luò)功能有三大類 : URL, Socket, Datagram: URL 是三大功能中最高級(jí)的一種 ,通過(guò) URL Java 程序可以直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù)。 Socket 是傳統(tǒng)網(wǎng)絡(luò)程序最常用的方式,可以認(rèn)為 Socket 形如其名插座之意,只要有插頭插上了就能夠傳道電流,而這個(gè)電流,我們就可以想象成 Socket 通信中的 Stream(流 )了。 Datagram 是更低級(jí)的網(wǎng)絡(luò)傳輸方式,它把數(shù)據(jù)目的地記錄在包中,并把數(shù)據(jù)分成若干塊記錄在固定大小的數(shù)據(jù)包中,然后直接放在網(wǎng)絡(luò)上傳遞到目的端,至于你到底傳送成功與否,這就沒(méi)它的事了。 多線程 進(jìn)程是一個(gè)具體的應(yīng)用程序, 而 線程是進(jìn)程中的一個(gè)分支, 它是 為 了 單獨(dú)完成程序中的某一項(xiàng)或一組功能而存在 的。那么,我們?cè)谝粋€(gè)程序中要實(shí)現(xiàn)的功能就可以劃分為多個(gè)線程來(lái)分別實(shí)現(xiàn),這大大降低了一個(gè)程序的復(fù)雜性,也提高了程序的處理效率。在本課題中引入多線程技術(shù)無(wú)疑顯得是非常必要的,那么通信過(guò)程中的許多功能就可以用多個(gè)線程來(lái)實(shí)現(xiàn),從而做到分工明確,改善程序的執(zhí)行效率。 TCP/UDP 協(xié)議 TCP (Transmission Control Protocol)和 UDP(User Datagram Protocol)屬于 傳輸層 協(xié)議。其中 TCP 提供 IP 環(huán)境下的數(shù)據(jù) 可靠傳輸 ,它提供的服務(wù)包括 數(shù)據(jù)流 傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。通過(guò)面向連接、端到端和可靠的 數(shù)據(jù)包 發(fā)送。通俗說(shuō),它是事先為所發(fā)送的數(shù)據(jù)開(kāi)辟出連接好的通道,然后再進(jìn)行數(shù)據(jù)發(fā)送;而 UDP 則不為 IP 提供可靠性、流控或差錯(cuò)恢復(fù)功能。一般來(lái)說(shuō), TCP 對(duì)應(yīng)的是可靠性要求高的應(yīng)用,而 UDP 對(duì)應(yīng)的則是可靠性要求低、傳輸經(jīng)濟(jì)的應(yīng)用。 TCP 支持的應(yīng)用協(xié)議主要有: Tel、 FTP、 SMTP 等;UDP 支持的 應(yīng)用層 協(xié)議主要有: NFS( 網(wǎng)絡(luò)文件系統(tǒng) )、 SNMP( 簡(jiǎn)單網(wǎng)絡(luò)管理 9 協(xié)議 )、 DNS(主域名稱系統(tǒng))、 TFTP(通用 文件傳輸協(xié)議 )等。 面向連接的 TCP “面向連接 ”就是在正式通信前必須要與對(duì)方建立起連接。比如你給別人打電話,必 須等線路接通了 而且 對(duì)方拿起話筒才能相互通話。 TCP( Transmission Control Protocol, 傳輸控制協(xié)議 )是基于連接的協(xié)議,也就是說(shuō),在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。一個(gè) TCP 連接必須要經(jīng)過(guò)三次 “ 握手 ” 才能建立起來(lái),其中的過(guò)程非常復(fù)雜。我們來(lái)看看這三次 “ 握手 ” 的簡(jiǎn)單過(guò)程: 主機(jī) A 向主機(jī) B 發(fā)出連接請(qǐng)求數(shù)據(jù)包: “我想給你發(fā)數(shù)據(jù),可以嗎? ”,這是第一次 “ 握手 ” ; 主機(jī) B 向主機(jī) A 發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)? ”,這是第二次 “ 握手 ” ; 主機(jī) A 再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī) B 的要求同步: “我現(xiàn)在就發(fā),你接著吧! ”,這是第三次 “ 握手 ” 。三次 “ 握手 ” 的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過(guò)三次 “ 握手 ” 之后, 主機(jī) A 才向主機(jī) B 正式發(fā)送數(shù)據(jù)。 以下是三次 “ 握手 ” 的概念圖 21: 主 機(jī) A 主 機(jī) B第 一 次 握 手 , 主 機(jī) A 向主 機(jī) B 發(fā) 出 連 接 請(qǐng) 求第 二 次 握 手 , 主 機(jī) B 接 受 到 主機(jī) A 的 連 接 請(qǐng) 求 , 向 主 機(jī) A 回發(fā) 一 個(gè) 確 認(rèn) 信 息 , 同 時(shí) 向 主機(jī) A 發(fā) 送 一 個(gè) 連 接 請(qǐng) 求第 三 次 握 手 , 主 機(jī) A 收 到 主 機(jī) B 的數(shù) 據(jù) 包 , 然 后 向 主 機(jī) B 發(fā) 送 一 個(gè)確 認(rèn) 連 接 圖 21 三次“握手”協(xié)議概念圖 TCP 協(xié)議能為 應(yīng)用程序 提供可靠的通信連接,使一臺(tái)計(jì)算機(jī)發(fā)出的 字節(jié)流無(wú)差錯(cuò)地發(fā)往網(wǎng)絡(luò)上的其他計(jì)算機(jī),對(duì)可靠性要求高的 數(shù)據(jù)通信系統(tǒng) 往往使用 10 TCP 協(xié)議傳輸數(shù)據(jù) 。 面向非連接的 UDP “面向非連接 ”就是在正式通信前不必與對(duì)方先建立連接,不管對(duì)方狀態(tài)就直接發(fā)送。這與現(xiàn)在 流行 的手機(jī)短信非常相似 : 你在發(fā)短信的時(shí)候,只需要輸入對(duì)方手機(jī)號(hào)就 OK 了 ,至于對(duì)方能否收到,這就不是我們的事情了,一切都交給網(wǎng)絡(luò)處理。 UDP( User Data Protocol, 用戶數(shù)據(jù)報(bào)協(xié)議 )是與 TCP 相對(duì)應(yīng)的協(xié)議。它是 “ 面向非連接 ” 的協(xié)議,它不 會(huì) 與對(duì)方建立連接,而是直接就把 數(shù)據(jù)包 發(fā)送過(guò)去! UDP 適用于一次只傳送少量數(shù)據(jù)、對(duì)可靠性要求不高的應(yīng)用環(huán)境。比如,我們經(jīng)常使用 “ping”命令來(lái)測(cè)試兩臺(tái) 主機(jī) 之間 TCP/IP 通信是否正常,其實(shí)“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送 UDP 數(shù)據(jù)包,然后對(duì)方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時(shí)反饋回來(lái),那么網(wǎng)絡(luò)就是通的。例如,在默認(rèn)狀態(tài)下,一次 “ping”操作發(fā)送 4個(gè)數(shù)據(jù)包 , 發(fā)送的數(shù)據(jù)包數(shù)量是 4包,收到的也是 4包(因?yàn)閷?duì)方 主機(jī) 收到后會(huì)發(fā)回一個(gè)確認(rèn)收到的數(shù)據(jù)包)。這充分說(shuō)明了 UDP 協(xié)議是 面 向非連接 的協(xié)議,沒(méi)有建立連接的過(guò)程。正因?yàn)?UDP 協(xié)議沒(méi)有連接的過(guò)程,所以它的通信效率高 。 但也正因?yàn)槿绱?,它的可靠?沒(méi)有TCP 協(xié)議高。 就使用 UDP 發(fā)消息,因此有時(shí)會(huì)出現(xiàn) 你發(fā)送了消息后,會(huì)出現(xiàn)發(fā)送消息失敗的結(jié)果 。 C/S 模式 C/S 模式是一種兩層結(jié)構(gòu)的系統(tǒng) , 第一層在客戶機(jī)上安裝了客戶機(jī)應(yīng)用程序 ,第二層在服務(wù)器上安裝服務(wù)器管理程序 。 在 C/S 模式的工作過(guò)程中 , 客戶機(jī)程序發(fā)出請(qǐng)求 , 服務(wù)器程序接收并且處理客戶機(jī)程序提出的請(qǐng)求 , 然后返回結(jié)果 。 C/S 模式有以下特點(diǎn) :
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1