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

正文內(nèi)容

java網(wǎng)絡(luò)聊天程序(編輯修改稿)

2025-01-11 01:38 本頁面
 

【文章內(nèi)容簡介】 優(yōu)秀的網(wǎng)絡(luò)服務(wù)程序除了能處理用戶的 輸入信息,還必須能夠同時響應(yīng)多個客戶端的連接請求。在 java 中,實現(xiàn)以上功能特點是非常容易的。 設(shè)計原理: 主程序監(jiān)聽一端口,等待客戶接入;同時構(gòu)造一個線程類,準備接管會話。當一個 Socket 會話產(chǎn)生后,將這個會話交給線程處理,然后主程序繼續(xù)監(jiān)聽。運用 Thread 類或 Runnable 接口來實現(xiàn)是不錯的辦法。 第三步 實現(xiàn)信息共享 :在 Socket 上的實時交流 網(wǎng)絡(luò)的偉大之一也是信息共享, Server 可以主動向所有 Client 廣播消息,同時 Client 也可以向其它 Client 發(fā)布消息。下面看看如何開發(fā)一 個可以實時傳遞消息的程序。 設(shè)計原理: 服務(wù)器端接受客戶端的連接請求,同時啟動一個線程處理這個連接,線程不停的讀取客戶端輸入,然后把輸入加入隊列中,等候處理。在線程啟動的同時將線程加入隊列中,以便在需要的時候定位和取出。 [2] 長春理工大學(xué)畢業(yè)設(shè)計 9 第三章 總體設(shè)計 本章主要介紹了該系統(tǒng)在需求分析以及總體設(shè)計思路、功能模塊、軟件的工作原理等。需求分析在大多數(shù)軟件系統(tǒng)的敘述要都會獨立出一章來敘述,但出于該系統(tǒng)的直觀性和廣泛性,就把它拿到這里來敘述,增強可讀性。 需求分析 聊天系統(tǒng) 主要包含 服 務(wù)器端和客戶端 兩個方面 。 而這兩個方面所要完成的任務(wù)不同 。 服務(wù)器端的任務(wù) 主要為 : 1 .服務(wù)器端應(yīng)當建立一個 ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接 (包括判斷沒有響應(yīng)的連接超時 )。 2.服務(wù)器端應(yīng)當是一個信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。 3 .服務(wù)器端應(yīng)當將處理過程中需要持久化的數(shù)據(jù)保存到數(shù)據(jù)庫中,以及實時的從數(shù)據(jù)庫中提取所需數(shù)據(jù)。 而 客戶端應(yīng)該完成的工作 主要 包括: 1.與服務(wù)器端建立通信通道,向服務(wù)器端發(fā)送信息。 2.接收來自服務(wù) 器的信息。 相對服務(wù)器而言,客戶端的任務(wù)更加簡單,有了以上的簡單分析, 不難看出 ,解決上述四個問題,即完成了該聊天系統(tǒng)的核心。 設(shè)計要點 聊天系統(tǒng)的設(shè)計跟普通網(wǎng)站設(shè)計有著許多不同的地方,普通網(wǎng)站設(shè)計所考慮的因素,例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設(shè)計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,在設(shè)計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設(shè)計要點: 實現(xiàn)思想 在 Inter 上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在 同一服務(wù)器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在 TCP/IP 環(huán)境下,實現(xiàn)服務(wù)器端和客戶端兩部分程序。 服務(wù)器端工作流程 服務(wù)器端通過 socket()系統(tǒng)調(diào)用創(chuàng)建一個 Socket 數(shù)組后 (即設(shè)定了接受連長春理工大學(xué)畢業(yè)設(shè)計 10 接客戶的最大數(shù)目 ),與指定的本地端口綁定 bind(),就可以在端口進行偵聽listen()。如果有客戶端連接請求,則在數(shù)組中選擇一個空 Socket,將客戶端地址賦給這個 Socket。然后登錄成功的客戶就可以在服務(wù)器上聊天了。 客戶端工作流程 客戶端程序相對簡單,只需要建立一個 Socket 與服務(wù)器端連接,成功后通過這個 Socket 來發(fā)送和接收數(shù)據(jù)就可以了。 功能模塊及設(shè)計步驟 功能模塊 該系統(tǒng)主要包括以下功能,如圖圖 所示: 用戶注冊用戶登錄聊天系統(tǒng)修改用戶信息修改密碼網(wǎng) 絡(luò) 聊 天 程 序 圖 功能模塊圖 當用戶第一次使用本軟件時需要新注冊用戶。之后用戶需登錄并驗證通以后方可以進入聊天界面,用戶登錄后可以與在線的用戶進行聊天。剛進入的聊天界面默認的是與多個或單個用戶聊天,查看在線用戶信息,選擇某個用戶進行私聊或者屏蔽某個用戶的發(fā)言在自己界面的顯示。 此外,本系統(tǒng)還充許用 戶修改其本人的用戶信息,諸如:用戶名,頭像,個性簽名等,當然也有用戶密碼修改功能。 設(shè)計步驟 1、數(shù)據(jù)庫設(shè)計 表 11 user_qq 表 Id Name Sex Icon Memo Pwd 1 Sophie F 01 一路風(fēng)塵 19850321 2 William M 31 開心就好 19860101 長春理工大學(xué)畢業(yè)設(shè)計 11 由于在整個聊天系統(tǒng)中,都是圍繞用戶來操作,所以這個網(wǎng)絡(luò)聊天程序只設(shè)計了一個表。鑒于時間及能力有限,該系統(tǒng)只實現(xiàn)了比較簡單的一些功能,因而本系統(tǒng)只設(shè)計了幾個關(guān)鍵的字段為程序所使用 ,如上表 11 所示 。 2、界面開發(fā) 當前騰訊 的流行讓我在界面開發(fā)方面的主界面以效仿其群聊界面為主,而私聊可以通過右鍵點擊用戶打開。但界面不會有 太 復(fù)雜。 3、業(yè)務(wù)邏輯 該系統(tǒng)中我采用 C/S 模式, C/S 模式 的優(yōu)點是能充分發(fā)揮客戶端 PC 的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度快。 1、服務(wù)器端使用采用多線程接收用記發(fā)來的請求,每接到一個新用戶的登錄或注冊請求,服務(wù)器端開一個新的線程來處理這個請求并生成響應(yīng)返回給一定的用戶,并根據(jù)需要來訪問數(shù)據(jù)庫。 2、客戶端負責發(fā)出請求, 并 實時接 收服務(wù)器端發(fā)出的響應(yīng)。 是用戶直接操作的程序。 長春理工大學(xué)畢業(yè)設(shè)計 12 第四章 詳細設(shè)計與實現(xiàn) 本章先說明了該系統(tǒng)的運行和開發(fā)環(huán)境,以及核心功能的具體實現(xiàn)過程和所用的主要技術(shù)。最后描述了該系統(tǒng)的測試流程和運行結(jié)果。 開發(fā)環(huán)境 基于 JAVA 聊天系統(tǒng)的設(shè)計主要運用 JAVA 與語言與 Socket 類結(jié)合而開發(fā)。其開發(fā)的主要環(huán)境包括: 服務(wù)器端:( Windows 平臺)首先應(yīng)有 java 環(huán)境 jdk,建議采用 以上,另外還需配置 classpath 環(huán)境變量 ,添加數(shù)據(jù)庫 MySQL 及數(shù)據(jù)操作技術(shù)組件Hibernate 運行所需要的 jar 包,本系統(tǒng)開發(fā)工具為 。 客戶端:只要 有 java 環(huán)境 jdk 就可以 ,建議 。 本系統(tǒng)運行環(huán)境所需的硬件環(huán)境為 : 中央處理器( CPU) : Intel(R) Pentium(R) processor 硬 盤: 40GB以上硬盤; 內(nèi) 存: 512 DDR內(nèi)存; 顯示器: 17寸顯示器等; 顯 卡: 128M顯存顯卡 軟件環(huán)境: Windows XP、 、 jdk6u14windowsi58 MYSQL 、 Hibernate 。 核心功能實現(xiàn) Socket 的簡介 Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端點成為套接字,套接字是在比較低的層次上通信的。 具體的說:一個服務(wù)器應(yīng)用程序一般偵聽一個特定的端口等待客戶端的連接請求,當一個連接請求到達時,客戶端和服武器端建立一個通信連接,在連接過程中,客戶端被分配一個本地端口與一個 socket建立連接,客戶端通過寫 socket來通知 服務(wù)器,以讀 socket 中的信息,類似的服務(wù)器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務(wù)器也通過它的本地端口連接一個 socket,通過讀寫和客戶端通信。 [4] : 第一次握手:原主機發(fā)送一個帶有本次連接的序號的請求的一個數(shù)據(jù)幀 長春理工大學(xué)畢業(yè)設(shè)計 13 第二次握手:目的主機收到請求后,如果同意連接,則發(fā)回一個帶有一個本次連接序號和源端機連接序列號的確認。 第三此握手:源端機收到含有兩次初始序列號的應(yīng)答后,在向目的主機發(fā)送一個帶有兩次連接的序列號的確認。 具體過程如下 圖 所示: 主機 A 主機 B : 圖 Socket連接圖 工作原理 (1)聊天系統(tǒng)工作原理圖 聊天系統(tǒng)的工作原理是,一個服務(wù)器通過 TCP 連接多個客戶端,如圖 所示: 圖 (2)TCP/IP 協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程: 應(yīng)用程序為了傳輸數(shù)據(jù)會調(diào)用 TCP,將數(shù)據(jù)和對應(yīng)的參數(shù)傳給 TCP,將 TCP SYN=1,SEQ ACK=1,SYN=1,SEQ= aaaaaaaaaa ACK=1 第一次握手,主機 A 向主機 B發(fā)送連 接請求 第二次握手,主機 B 收到主機 A的請求,向主機 A回發(fā)一個確認,同時向主機 A發(fā)送一個連接請求 第三次握手,主機 A 收到主機 B 發(fā)送的數(shù)據(jù)包在向主機 B發(fā)送一個確認連接 長春理工大學(xué)畢業(yè)設(shè)計 14 數(shù)據(jù)包封裝在 IP 包內(nèi),通過網(wǎng)絡(luò)送給目的 TCP。接收方 TCP 在接收到數(shù) 據(jù)后通知上層應(yīng)用程序, TCP 將保證接收數(shù)據(jù)的正確性。在實現(xiàn) TCP 的主機上, TCP 可以被看成是一個模塊,和文件系統(tǒng)區(qū)別不大, TCP 也可以調(diào)用一些操作系統(tǒng)的功能, TCP 不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門的設(shè)備驅(qū)動模塊完成。 TCP只是調(diào)用 IP 接口,向 TCP 提供所有 TCP 需要的服務(wù)。 (3)端口號: 有的時候,一個 ip 地址不能完整的標識一臺服務(wù)器,這是應(yīng)為一臺物理性的計算機同時運行著多個應(yīng)用程序,這就需要我們來區(qū)別同一臺機子上的不同的服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是 端口。端口實際是一個 16位長 的 地址,他的范圍是 0~ 65535 之間,其中 0~ 1023 是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進程都只道的, 1024~ 65535 為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的個客戶端應(yīng)用程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端。 服務(wù)器與客戶端之間的通信 建立 Socket 連接:在通信開始之前由通信雙方確認身份,建立一條專用的虛擬連接通道。 數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通道。 關(guān)閉:通信結(jié) 束時,再將所建的虛擬連接拆除。 通信過程我們可以用 下 圖 來概括,而具體的細節(jié)我們用下一節(jié)的流程圖來說明。 服務(wù)器 客戶端 發(fā)送連接請求 連接失敗 發(fā)送數(shù)據(jù) 接收 數(shù)據(jù) 1服務(wù)器 socket 2 監(jiān)聽 4 接收 5 讀 6 寫 7 關(guān)閉 3 客戶端 socket 6 寫 5 讀 7 關(guān)閉 長春理工大學(xué)畢業(yè)設(shè)計 15 圖 服務(wù)器與客戶端之間的通信過程 流程圖 本次 畢 設(shè)的 核心功能是服務(wù)器端與客戶端之間的通信。而服務(wù)器端與客戶端的實現(xiàn)是不同的。我們分別用流程圖來說明。 服務(wù)器端: 服務(wù)器端開始會有一段程序來隨時監(jiān)聽用戶的請求,如圖 所示: 開 始初 始 化 , 并 生 成S e r v e r S o c k e t 對 象由 S e r v e r S o c k e t 對 象 生 成S o c k e t 對 象 , 阻 塞 程 序接 到 連 接 請 求結(jié) 束結(jié) 束 命 令創(chuàng) 建 新 線 程 處理 請 求 圖 服務(wù)器主程序 說明: ,會初始化某些必要的設(shè)置,諸如數(shù)據(jù)連接對象和 Socket連接端口號等。這兩個配置都不會硬編碼到程序中去,而是寫到相應(yīng)的配置文件中,使得以后更換不同數(shù)據(jù)庫時方便修改。 ,程序會用上一步生成的 ServerSocket 對象的 accept()方法生成一個 Socket 對象對客戶端進行監(jiān)聽。這段代碼會放到一個循環(huán)里,保證每個長春理工大學(xué)畢業(yè)設(shè)計 16 同戶都能得到響應(yīng)。 。多線程的引入為多個用戶同時訪 問該服務(wù)器提供了技術(shù)上的支持。 新的線程也是由一個循環(huán)來監(jiān)聽消息請求,如圖 所示: 由 S o c k e t 建 立的 輸 入 流 阻 塞程 序判 斷 請 求 類 型新 用 戶 注 冊向 所 有 在 線用 戶 發(fā) 信 息請 求 與 用 戶私 聊修 改 用 戶 密碼修 改 用 戶信 息用 戶 登 錄結(jié) 束斷 開 連 接 ,釋 放 資 源 。r e g i s t e r l o g i nc h a n g e I n f o rm a t i o nm o d i f y p a s sw o r di n d i v i d u a lT a l ks e n d M e s s a g e e x i t接 收 到 用 戶 請 求線 程 入 口 圖 服務(wù)線程 說明: ,進入一個循環(huán)程序,
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1