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

正文內(nèi)容

基于tcp_ip協(xié)議的聊天工具的設(shè)計(jì)與開(kāi)發(fā)畢業(yè)設(shè)計(jì)論文(存儲(chǔ)版)

  

【正文】 現(xiàn)了一個(gè)局域網(wǎng)的通信軟件,基本滿足了系統(tǒng)結(jié)構(gòu)化、界面友好、速度快、占用資源少、穩(wěn)定等特點(diǎn)。生成的聊天室可以達(dá)到基本的局域網(wǎng)聊天要求,具有較高的學(xué)習(xí)價(jià)值和深入的研究?jī)r(jià)值。通過(guò)這次畢業(yè)設(shè)計(jì),本 人。 本次畢業(yè)設(shè)計(jì)所設(shè)計(jì)開(kāi)發(fā)的系統(tǒng)著重研究并實(shí)現(xiàn)了 Socket 網(wǎng)絡(luò)通訊應(yīng)用的部分。 客戶端 客戶端能夠通過(guò)正確的賬號(hào)和密碼進(jìn)行登錄 客戶端能夠?qū)崿F(xiàn)在線注冊(cè); 客戶端實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多、多對(duì)多的聊天模式; 客戶端能夠改變聊天字體風(fēng)格; 客戶端能夠選擇切換私聊或者群聊; 客戶端右上角能顯示當(dāng)前的時(shí)間; 客戶端能夠保存聊天信息到本地 txt 文件; 客戶端能夠讀取聊天歷史記錄; 客戶端退出并向所有用戶廣播退出消息; 客戶端正常退出。,39。// sql = insert into userInfo(userName,userPwd,sex,age,) values( 39。 SqlConn sq = new SqlConn()。i++){ if(().charAt(i)==39。 } //年齡有無(wú)驗(yàn)證 if(()==0){ (null, 年齡不能為空 ! )。 31 = ()?男 :女 。一旦服務(wù)器關(guān)閉了服務(wù),那么客戶端會(huì)知道服務(wù)器已經(jīng)停止了服務(wù),并且彈出“無(wú)法連接到服務(wù)器”的對(duì)話框,客戶端也會(huì)停止工作。 相應(yīng)的客戶端的設(shè)計(jì)要比服務(wù)器簡(jiǎn)單, Login 類(lèi)負(fù)責(zé)實(shí)現(xiàn)登陸, Register 類(lèi)負(fù)責(zé)實(shí)現(xiàn)用戶注冊(cè), ChatRoom 類(lèi)實(shí)現(xiàn)用戶的聊天功能,其中 ChatRoom 單獨(dú)用一個(gè)線程 18 來(lái)處理其具體的操作。本系統(tǒng)在架構(gòu)設(shè)計(jì)上將分成 3 個(gè)層次,如下圖 35所示, 聊 天 應(yīng) 用 層接 口 層Socket底 層 圖 35 聊天系統(tǒng)設(shè)計(jì)層次模型圖 本系統(tǒng)最底層的是 Socket 通信層,負(fù)責(zé)將客戶端與服務(wù)器之間連接起來(lái),并建立 I/O 通道,實(shí)現(xiàn)客戶端與服務(wù)器的數(shù)據(jù)傳輸。然后服務(wù)器便會(huì)執(zhí)行相應(yīng)線程里面相應(yīng)的操作流程,比如用戶登陸、用戶注冊(cè)、用戶聊天信息轉(zhuǎn)發(fā)等等。本次畢業(yè)設(shè)計(jì)的聊天軟件所用到的是 C/S 模式,即需要一個(gè)服務(wù)器和一個(gè)客戶端項(xiàng)目,最后兩個(gè)項(xiàng)目完成通信過(guò)程。 技術(shù)可行性 :本系統(tǒng)的開(kāi)發(fā)是利用 SQL Server 2021 作為本 系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)的 ,它是一個(gè)支持多用戶的新型數(shù)據(jù)庫(kù) ,適用于中小規(guī)模的數(shù)據(jù)量需求。 JDK 是整個(gè) Java 的核心,包括了 Java 運(yùn)行環(huán)境 、 Java 工具和 Java 基礎(chǔ)的類(lèi)庫(kù)。也就是說(shuō)在 Java 環(huán)境下,我們使用 TCP/IP 協(xié)議的網(wǎng)絡(luò)編程需要采用 Socket 機(jī)制。 C/S 模式配備的是點(diǎn)對(duì)點(diǎn)的結(jié)構(gòu)模式 , 適用于局域網(wǎng) , 有可靠的安全性 。例如,在默認(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ù)包)。我們來(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ā),你接著吧! ”,這是第三次 “ 握手 ” 。通過(guò)面向連接、端到端和可靠的 數(shù)據(jù)包 發(fā)送。 Java 提供的網(wǎng)絡(luò)功能有三大類(lèi) : URL, Socket, Datagram: URL 是三大功能中最高級(jí)的一種 ,通過(guò) URL Java 程序可以直接送出或讀入網(wǎng)絡(luò)上的數(shù)據(jù)。 多線程 Java 具備內(nèi)建的多線程功能,可以將一個(gè)程序的不同程序段設(shè)置為不同的線程,使各線程并發(fā)、獨(dú)立執(zhí)行,提高系統(tǒng)的運(yùn)行效率。在 Java 之前雖然已經(jīng)有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言問(wèn)世,但 如 C++這樣的開(kāi)發(fā)語(yǔ)言并不是完全的面向?qū)ο?,而是面向過(guò)程和面向?qū)ο蟮幕旌象w。它采用了大部分與 C++類(lèi)似的語(yǔ)法對(duì)可能具備危險(xiǎn)性的功能加以改進(jìn),例如將內(nèi)存管理改為由語(yǔ)言自己進(jìn)行管理,以減少程序員的負(fù)擔(dān)及可能發(fā)生的錯(cuò)誤。當(dāng)時(shí) Sun Microsystems 公司為 了發(fā)展消費(fèi)類(lèi)電子產(chǎn)品進(jìn)行了一個(gè)名為 Green 的項(xiàng)目計(jì)劃。這些通訊軟件各具特色,實(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ì)。 課題意義 研究本課題的主要目的在于了解當(dāng)前通訊軟件的通信 模式,并試著開(kāi)發(fā)一個(gè)能夠?qū)崿F(xiàn)局域網(wǎng)通信的局域網(wǎng)即時(shí)通信軟件,通過(guò)這個(gè)過(guò)程,讓自己更加了解在 Java下,實(shí)現(xiàn)通信的具體原理和工作流程。人們可以通過(guò)各種軟件建立即時(shí)性的聯(lián)系,比如人們通常用的Email, , MSN 等等。 本課題主要是基于 Java 這種跨平臺(tái)的編程語(yǔ)言,利用 SQL Server 2021 數(shù)據(jù)庫(kù)進(jìn)行編寫(xiě)。 關(guān)鍵字: Java, Socket,多線程, TCP/UDP, C/S II ABSTRACT With the progress of era, the Inter bee increasingly popularization and popularization. In today39。而這個(gè) “ 聯(lián)系方式 ” 又有很多種了,比如郵件、文字會(huì)話、語(yǔ)音會(huì)話、視屏?xí)挼?。通過(guò)網(wǎng)絡(luò),我們可以很輕松的和地球那端的人取得聯(lián)系。 該軟件完 成后的主要功能有:點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多、多對(duì)多的聊天,服務(wù)器對(duì)聊天進(jìn)行統(tǒng)一管理,比如用戶注冊(cè),用戶登陸,踢出用戶等。 于是,本人懷著對(duì)網(wǎng)絡(luò)通信機(jī)制以及原理的極大興趣嘗試?yán)?Java語(yǔ)言編寫(xiě)一個(gè)微型的局域網(wǎng)聊天軟件,可以供多人在一個(gè)局域網(wǎng)中同時(shí)進(jìn)行 聊天通信。 2 第一章 概述 課題背景及意義 課題背景 當(dāng)今處于一個(gè)信息爆炸的時(shí)代,隨著 Inter 的迅速普及和發(fā)展,人們之間的溝通和交流變得越來(lái)越頻繁,以至于到了人們每天的日常生活都離不開(kāi)這個(gè)具有高效時(shí)效性的網(wǎng)絡(luò)。這很像我們的電話網(wǎng)絡(luò),中轉(zhuǎn)通信模式。而騰訊的 ,在功能上則是非常全面的,因?yàn)槠淇蛻舳藭r(shí)間通訊采用 UDP 方式,所以通訊顯得非常的流暢和方便,也大大減 輕了服務(wù)器的負(fù)荷。 6 第二章 開(kāi)發(fā)技術(shù)和平臺(tái) 開(kāi)發(fā)技術(shù) Java 語(yǔ)言 Java 發(fā)展歷程 Java 的發(fā)展歷史,可以追朔到 1990 年。 為了解決此類(lèi)問(wèn)題, Gosling 決定開(kāi)發(fā)一種新的語(yǔ)言,并取名為 Oak。 面向?qū)ο? 面向?qū)ο蠹夹g(shù)是現(xiàn)代工業(yè)的一次革新,提高了軟件的模塊化程度和復(fù)用率,縮短了軟件開(kāi)發(fā)時(shí)間,降低了開(kāi)發(fā)成本。只要計(jì)算機(jī)安裝了能解釋執(zhí)行字節(jié)碼的 Java 虛擬機(jī) JVM,就可以執(zhí)行字節(jié)碼文件,從而實(shí)現(xiàn) Java 的平臺(tái)獨(dú)立性。 在 Java 中 ,有一個(gè)用來(lái)存儲(chǔ) Inter 地址的類(lèi)叫 IAddress。其中 TCP 提供 IP 環(huán)境下的數(shù)據(jù) 可靠傳輸 ,它提供的服務(wù)包括 數(shù)據(jù)流 傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。一個(gè) TCP 連接必須要經(jīng)過(guò)三次 “ 握手 ” 才能建立起來(lái),其中的過(guò)程非常復(fù)雜。比如,我們經(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ò)就是通的。 C/S 模式有以下特點(diǎn) : C/S 模式將 客戶端 與服務(wù)分離 , 系統(tǒng)具有穩(wěn)定性和靈活性 的特點(diǎn)。在 Java 環(huán)境下,Socket 編程主要是基于 TCP/IP 協(xié)議的網(wǎng)絡(luò)編程。自從Java 推出以來(lái), JDK 已經(jīng)成為使用最廣泛的 Java SDK。所以,只要有一臺(tái)能運(yùn)行 Java軟件的電腦即可,而不用考慮到經(jīng)濟(jì)問(wèn)題。聊天軟件無(wú)非就是要實(shí)現(xiàn)聊天的功能,那么其最根本的需求就是實(shí)現(xiàn)一個(gè)聊天的功能。然后,服務(wù)器就開(kāi)始工作了,服務(wù)器 會(huì)一直處于擁塞狀態(tài),直到接收到 Socket 連接請(qǐng)求?;诳芍赜玫木W(wǎng)絡(luò)通信底層,可以實(shí)現(xiàn)其他各種實(shí)時(shí)性較高的應(yīng)用系統(tǒng)。兩個(gè)線程之間分工明確一個(gè)負(fù)責(zé)監(jiān)聽(tīng) 請(qǐng)求,一個(gè)負(fù)責(zé)處理請(qǐng)求,多線程處理,分工明確。如下圖 44所示, 圖 44 服務(wù)器啟動(dòng)后服務(wù)器管理主界面 服務(wù)器的關(guān)閉 點(diǎn)擊以上圖例所示“關(guān)閉服務(wù)器”按鈕,服務(wù)器便可退出 服務(wù)。 = ()。 return。i().length()。++39。 }else{ (+注冊(cè)成功! )。++39。實(shí)現(xiàn)的相應(yīng)功能主要有以下部分, 服務(wù)器端 服務(wù)器能夠監(jiān)聽(tīng)客戶端的所有操作,并作出相應(yīng)的處理; 服務(wù)器端可以發(fā)送系統(tǒng)消息; 服務(wù)器可以管理用戶和用戶消息; 服務(wù)器可以踢出非法聊天的用戶; 服務(wù)器日志記錄了客戶端登陸、下線的所有信息; 服務(wù)器將用戶聊天信息記錄在數(shù)據(jù)庫(kù)中; 服務(wù)器正常關(guān)閉。所以,我必定會(huì)認(rèn)真總結(jié)這次畢業(yè)設(shè)計(jì)的經(jīng)驗(yàn),以及學(xué)習(xí)到的知識(shí),來(lái)更加的充實(shí)自己的閱歷和完善自己的知識(shí)覆蓋面。因?yàn)椋诖髮W(xué)期間,學(xué)習(xí) Java 的時(shí)間其實(shí)很少,而且也不夠深入。還可以以此為拓展,更深入的學(xué)習(xí)和研究 Socket 網(wǎng)絡(luò)通信以及其他的網(wǎng)絡(luò)通信模式。所以,總體上來(lái)說(shuō),該系統(tǒng)還是比較成功的。 (sql)。++39。 boolean flag = false。 } } if(flag!=1){ 32 (null, 電子郵箱格式不正確!請(qǐng)重新輸入! )。 if(age=0||age150){ (null, 輸入年齡無(wú)效! )。 return。而如果點(diǎn)擊注冊(cè)按鈕的話,就會(huì)直接跳到注冊(cè)界面,其工作流程圖下圖 413所示, 登 陸 窗 口是 否 有 賬 號(hào) 注 冊(cè) 賬 號(hào)注 冊(cè) 信 息 判 斷 合 格注 冊(cè) 成 功登 陸 判 斷登 陸 成 功是 否 有 在 線 用 戶發(fā) 送 消 息退 出 系 統(tǒng)登 陸YNYNYNNY等 待YN 圖 413 客戶端工作流程圖 客戶端登陸主界面 登陸客戶端首先進(jìn)入的是登陸界面,如下圖 414所示, 28 圖 414 用戶登陸界面 客戶端注冊(cè)主界面 用戶點(diǎn)擊登陸主界面上的注冊(cè)按鈕,會(huì)自動(dòng)跳轉(zhuǎn)到注冊(cè)主界面,如圖 415 所示, 圖 415 注冊(cè)主界面 此時(shí)用戶可以進(jìn)行賬號(hào)注冊(cè),如下圖 416組圖所示 29 30 圖 416 用戶注冊(cè) 用戶注冊(cè)時(shí),首先經(jīng)過(guò)客戶端判定是否輸入為空,經(jīng)過(guò)客戶端的判斷后才會(huì)將注冊(cè)信息發(fā)往服務(wù)器,服務(wù)器判斷該用戶名是否已經(jīng)被注冊(cè),然后返回成功或者失敗的結(jié)果。 圖 36 用戶聊天信息表 用戶聊天信息表主要用來(lái)存儲(chǔ)用戶的聊天信息,包括聊天信息的 id 號(hào),聊天具體信息,聊天內(nèi)容的時(shí)間。 Socket底層設(shè)計(jì)分為兩大部 分:協(xié)議設(shè)計(jì)和連接處理。聊天主界面就是我們的聊天室了,這里實(shí)現(xiàn)了局域網(wǎng)聊天的功能,包括點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多、多對(duì)多的聊天形式。因此,程序要在 TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。因此 ,本系統(tǒng)在運(yùn)行上是完全可行的。本次畢業(yè)應(yīng)用了 JDBC 訪問(wèn) SQL Server 2021 數(shù)據(jù)庫(kù),以完成必要的功能和要求。 硬件環(huán)境 開(kāi)發(fā) Java 項(xiàng)目所要的硬件要求并不需要太高,達(dá)到以下要求即可: ? 處理器: Intel Core2 Duo CPU 或者更高 ? 內(nèi)存: 1GB 或者更高 ? 網(wǎng)絡(luò):局域網(wǎng) 軟件環(huán)境 操作系統(tǒng): Windows XP 或者其它可用操作系統(tǒng) ? 開(kāi)發(fā)平臺(tái): Eclipse+AWT 組件庫(kù) ? 開(kāi)發(fā)語(yǔ)言: Java ? 數(shù)據(jù)庫(kù): SQL Server 2021 Eclipse Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái) 。 Socket 在網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向的鏈路的一般稱(chēng)為一個(gè) Socket。 但也正因?yàn)槿绱?,它的可靠?沒(méi)有TCP 協(xié)議高。 面向非連接的 UDP “面向非連接 ”就是在正式通信前不必與對(duì)方先建立連接,不管對(duì)方狀態(tài)就直接發(fā)送。 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(主域名稱(chēng)系統(tǒng))、 TFTP(通用 文件傳輸協(xié)議 )等。 多線程 進(jìn)程是一個(gè)具體的應(yīng)用程序, 而 線程是進(jìn)程中的一個(gè)分支, 它是 為 了 單獨(dú)完成程序中的某一項(xiàng)或一組功能而存在
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1