局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

1、JISHOUUNIVERSITY專業(yè)課課程論文題題 目:目:局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)作作 者:者:學(xué)學(xué) 號(hào):號(hào):所屬學(xué)院:所屬學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)年級(jí):專業(yè)年級(jí):總總 評(píng)評(píng) 分:分:完成時(shí)間:完成時(shí)間:吉首大學(xué)信息科學(xué)與工程學(xué)院吉首大學(xué)信息科學(xué)與工程學(xué)院局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000)摘 要在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,隨著 Internet 的普及和發(fā)展,人們的生活和工作也越來(lái)越離不開(kāi)信息網(wǎng)絡(luò)的支持,而聊天室是人們最常見(jiàn)、最直接的網(wǎng)上交流的方式。本論文

2、主要研究一個(gè)以網(wǎng)絡(luò)交友為主,為廣大用戶提供一個(gè)借助網(wǎng)絡(luò)進(jìn)行人際交往的信息平臺(tái)。本文所設(shè)計(jì)的局域網(wǎng)聊天系統(tǒng)是基于開(kāi)放的 WEB 服務(wù)器應(yīng)用程序開(kāi)發(fā)設(shè)計(jì)的,其主要特征是能動(dòng)態(tài)完成信息的傳遞且具有高效的交互性,有效的處理客戶請(qǐng)求且具有更簡(jiǎn)單、更方便的數(shù)據(jù)庫(kù)訪問(wèn)方法,易于維護(hù)和更新。這種技術(shù)程序由JAVA、HTML、數(shù)據(jù)庫(kù)和腳本語(yǔ)言組合而成。主要功能模塊包括:用戶登錄、注冊(cè)部分;編寫(xiě)和顯示聊天記錄部分;管理員管理聊天室的管理部分。聊天系統(tǒng)編寫(xiě)和顯示聊天記錄部分界面友好,提供動(dòng)作、表情、公聊或私聊等操作;管理部分可以刪除不守規(guī)矩的注冊(cè)用戶、踢出在線用戶以及刪除某些不合時(shí)宜的聊天記錄等、根據(jù)數(shù)據(jù)庫(kù)需求分析

3、,在 ACCESS 中定義 3 個(gè)表:用 user 表來(lái)存放注冊(cè)用戶信息、用activetable 表來(lái)存放當(dāng)前在線用戶信息以及用 message 表來(lái)存放聊天記錄。本系統(tǒng)相比較其他信息交流平臺(tái)具有開(kāi)發(fā)方便、快捷,占用資源少,維護(hù)方便等優(yōu)點(diǎn)。【關(guān)鍵詞】Java,數(shù)據(jù)庫(kù),腳本語(yǔ)言,聊天系局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)LAN of multi-function chat room design and ImplementationRaotao (College of Information Science and Engineering,Jishou University,Jishou,Hun

4、an 416000)AbstractThe rapid development of computer technology today, with the popularity and development of Internet, peoples work and life has become increasingly inseparable from the support of the information network, and the chat room is one of the most common, the most direct online communicat

5、ion mode.In this thesis, a network of friends, for the vast number of users with a network of have the aid of interpersonal information platform.The design of the LAN chat system is based on an open WEB server application development and design, its main characteristic is to complete the information

6、 transmission dynamically with high interactivity, effective customer request and has a more simple, more convenient database accessing method, easy maintenance and update.The technical program by JAVA, HTML, database and script language and combination.The main function modules include: user login,

7、 registration section; write and display chat recording part; the administrator manage the chat room management section.Chat system to prepare and display chat interface friendly, with action, expression, the public chat or operation; management can remove the unruly registered user, play online use

8、r and delete certain be inopportune or inappropriate chat records, according to the database needs analysis, defined in ACCESS 3: user table table for registered users of information, using activetable table to store the current online user information and the use of message table to store the chat

9、record.This system is compared with other information exchange platform with the development of convenient, fast, less resource occupation, easy maintenance and other advantages.Key words:JAVA; data capture; information analysis ; Winpcap;Jpcap 局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)目 錄第一章引言 .11.1 課題背景及意義 .11.2 課題研究現(xiàn)狀 .1

10、1.3 研究?jī)?nèi)容 .21.4 論文組織方式 .2第二章關(guān)鍵技術(shù) .32.1 JAVA 概述 .32.2 套接字 .32.2.1 Socket 簡(jiǎn)介.32.2.2 Socket 工作過(guò)程.42.3 TCP 三次握手 .4第三章需求分析 .53.1 功能需求 .53.2 性能要求 .5處理數(shù)據(jù)能力 .5時(shí)間特性 .53.2.3 數(shù)據(jù)庫(kù)需求 .53.2.5 其他標(biāo)準(zhǔn)的約束 .53.2.6 外部接口需求 .63.2.7 通信接口 .7第四章概要設(shè)計(jì) .84.1 體系結(jié)構(gòu)設(shè)計(jì) .84.1.1 復(fù)審數(shù)據(jù)流、控制流 .8軟件體系結(jié)構(gòu) .84.2 模塊設(shè)計(jì) .94.2.1 用戶掃描系統(tǒng)模塊 .94.2.2 在

11、線交流系統(tǒng)模塊 .104.2.3 系統(tǒng)配置系統(tǒng) .11第五章詳細(xì)設(shè)計(jì) .145.1 用戶登錄模塊 .14局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)5.2 用戶列表模塊 .155.3 文本聊天模塊 .17第六章測(cè)試及實(shí)現(xiàn)結(jié)果 .216.1 測(cè)試環(huán)境 .216.2 測(cè)試過(guò)程 .21用戶登錄及用戶列表 .216.2.2 文本聊天 .226.2.3 文件傳輸 .25結(jié)束語(yǔ).27參考文獻(xiàn).28局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)1第一章第一章引言引言1.1 課題背景及意義課題背景及意義在網(wǎng)絡(luò)越來(lái)越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來(lái)越多,各種網(wǎng)絡(luò)應(yīng)用層出不窮,網(wǎng)絡(luò)編程越來(lái)越受大廣大程序員的重視。網(wǎng)絡(luò)編程的目的就是指直

12、接或間接地通過(guò)網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程中有兩個(gè)主要的問(wèn)題,一個(gè)是如何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺(tái)或多臺(tái)主機(jī),另一個(gè)就是找到主機(jī)后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸。在 TCP/IP 協(xié)議中 IP 層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳輸?shù)穆酚?,?IP 地址可以唯一地確定Internet 上的一臺(tái)主機(jī)。而 TCP 層則提供面向應(yīng)用的可靠的或非可靠的數(shù)據(jù)傳輸機(jī)制,這是網(wǎng)絡(luò)編程的主要對(duì)象,一般不需要關(guān)心 IP 層是如何處理數(shù)據(jù)的。目前較為流行的網(wǎng)絡(luò)編程模型是客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)。即通信雙方一方作為服務(wù)器等待客戶提出請(qǐng)求并予以響應(yīng)??蛻魟t在需要服務(wù)時(shí)向服務(wù)器提出申請(qǐng)。服務(wù)器一般作為守護(hù)進(jìn)程始終運(yùn)行,

13、監(jiān)聽(tīng)網(wǎng)絡(luò)端口,一旦有客戶請(qǐng)求,就會(huì)啟動(dòng)一個(gè)服務(wù)進(jìn)程來(lái)響應(yīng)該客戶,同時(shí)自己繼續(xù)監(jiān)聽(tīng)服務(wù)端口,使后來(lái)的客戶也能及時(shí)得到服務(wù)。網(wǎng)絡(luò)聊天是網(wǎng)絡(luò)編程的典型應(yīng)用之一,編寫(xiě)網(wǎng)絡(luò)聊天軟件對(duì)于學(xué)習(xí)網(wǎng)絡(luò)編程無(wú)疑有著很大的幫助。本小組編寫(xiě)本軟件,旨在通過(guò)軟件的編寫(xiě)與實(shí)現(xiàn),來(lái)提高對(duì)網(wǎng)絡(luò)編程的理解和掌握。1.2 課題研究現(xiàn)狀網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)是獲取信息的關(guān)鍵技術(shù),它通過(guò)監(jiān)聽(tīng)技術(shù),過(guò)濾技術(shù)獲取原始數(shù)據(jù),根據(jù)TCP/IP分層理論進(jìn)行層層拆解,提取相關(guān)協(xié)議中的信息。本設(shè)計(jì)主要通過(guò)使用Java編寫(xiě)出了一款簡(jiǎn)單的軟件對(duì)數(shù)據(jù)包信息進(jìn)行捕獲,捕獲出所需要的敏感信息,并且將捕獲出來(lái)的信息保存起來(lái)。Java 是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用軟件的

14、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計(jì)語(yǔ)言和 Java 平臺(tái)(即 JavaSE,JavaEE,JavaME)的總稱。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ì)和廣闊前景1。 局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)21.3 研究?jī)?nèi)容網(wǎng)絡(luò)編程的目的就是指直接或間接地通過(guò)網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程中有兩個(gè)主要的問(wèn)題,一個(gè)是如

15、何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺(tái)或多臺(tái)主機(jī),另一個(gè)就是找到主機(jī)后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸。在 TCP/IP 協(xié)議中 IP 層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳輸?shù)穆酚?,?IP 地址可以唯一地確定Internet 上的一臺(tái)主機(jī)。而 TCP 層則提供面向應(yīng)用的可靠的或非可靠的數(shù)據(jù)傳輸機(jī)制,這是網(wǎng)絡(luò)編程的主要對(duì)象,一般不需要關(guān)心 IP 層是如何處理數(shù)據(jù)的。目前較為流行的網(wǎng)絡(luò)編程模型是客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)。即通信雙方一方作為服務(wù)器等待客戶提出請(qǐng)求并予以響應(yīng)??蛻魟t在需要服務(wù)時(shí)向服務(wù)器提出申請(qǐng)。服務(wù)器一般作為守護(hù)進(jìn)程始終運(yùn)行,監(jiān)聽(tīng)網(wǎng)絡(luò)端口,一旦有客戶請(qǐng)求,就會(huì)啟動(dòng)一個(gè)服務(wù)進(jìn)程來(lái)響應(yīng)該客戶,同時(shí)自己繼續(xù)監(jiān)聽(tīng)

16、服務(wù)端口,使后來(lái)的客戶也能及時(shí)得到服務(wù)。網(wǎng)絡(luò)聊天是網(wǎng)絡(luò)編程的典型應(yīng)用之一,編寫(xiě)網(wǎng)絡(luò)聊天軟件對(duì)于學(xué)習(xí)網(wǎng)絡(luò)編程無(wú)疑有著很大的幫助。本軟件旨在為同一局域網(wǎng)用戶間提供便利的局域網(wǎng)服務(wù),局域網(wǎng)用戶可以通過(guò)此聊天軟件在各終端相互發(fā)送聊天信息,同時(shí)可以快速傳送文件,方便局域網(wǎng)用戶間的快速有效通信。1.4 論文組織方式 首先,本論文從目前網(wǎng)絡(luò)的安全現(xiàn)狀開(kāi)始,詳細(xì)研究了本課題的背景以及意義,由于目前我國(guó)已經(jīng)進(jìn)入了網(wǎng)絡(luò)時(shí)代,需要使用自己的網(wǎng)絡(luò)聊天信息安全系統(tǒng)來(lái)保護(hù)自己的網(wǎng)絡(luò)聊天信息系統(tǒng),尤其是對(duì)于秘密性的信息,必須將網(wǎng)絡(luò)安全和信息安全放在非常重要的地位。其次,在對(duì)本論文的背景有所了解的情況下,對(duì)本課題所必須的關(guān)鍵

17、技術(shù)進(jìn)行了介紹,包括 java 的概述,套接字,三次握手等。最后,在對(duì)所必須得基礎(chǔ)知識(shí)有所了解的情況下,按照各模塊的功能,分別詳細(xì)介紹了各個(gè)功能的實(shí)現(xiàn)過(guò)程。局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)3第二章第二章關(guān)鍵技術(shù)關(guān)鍵技術(shù)2.1 java 概述JAVA 語(yǔ)言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο?、分布式、解釋?zhí)行、魯棒、 安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動(dòng)態(tài)性。豐富的類庫(kù) JAVA 提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο笙到y(tǒng)的需要。語(yǔ)言包提供的支持包括字符串處理、多線程處理、數(shù)學(xué)函數(shù)處理等,可以用它簡(jiǎn)單地實(shí)現(xiàn) JAVA 程序的運(yùn)行平臺(tái)。實(shí)用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、

18、時(shí)間和日期等。輸入輸出包用統(tǒng)一的“流”模型來(lái)實(shí)現(xiàn)所有格式的 I/O,包括文件系統(tǒng)、網(wǎng)絡(luò)、輸入低級(jí)網(wǎng)絡(luò)包用于實(shí)現(xiàn) Socket 編程。抽象圖形用戶接口包實(shí)現(xiàn)了不同平臺(tái)的計(jì)算機(jī)的圖形用戶接口部件, 包括窗口、菜單、滾動(dòng)條、對(duì)話框等,使得 JAVA 可以移植到不同平臺(tái)的機(jī)器。網(wǎng)絡(luò)包支持 Internet 的 TCP/IP 協(xié)議,提供了與 Internet 的接口。它支持 URL 連接,WWW 的即時(shí)訪問(wèn),并且簡(jiǎn)化了用戶/服務(wù)器模型的程序設(shè)計(jì)。JAVA 和 C、C+對(duì)于變量聲明、參數(shù)傳遞、操作符、流控制等使用了相同的傳統(tǒng),使得熟悉 C、C+的程序員能很方便地進(jìn)行編程。同時(shí), JAVA 為了實(shí)現(xiàn)其簡(jiǎn)單、

19、魯棒、安全等特性,也摒棄了 C 和 C+中許多不合理的內(nèi)容。2.2 套接字 Socket 簡(jiǎn)介Socket,簡(jiǎn)稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說(shuō)網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)成為套接字,套接字是在比較低的層次上通信的。具體的說(shuō):一個(gè)服務(wù)器應(yīng)用程序一般偵聽(tīng)一個(gè)特定的端口等待客戶端的連接請(qǐng)求,當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過(guò)程中,客戶端被分配一個(gè)本地端口與一個(gè) Socket 建立連接,客戶端通過(guò)寫(xiě)Socket 來(lái)通知服務(wù)器,以讀 Socket 中的信息,類似的服務(wù)器也獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)

20、來(lái)偵聽(tīng)原始端口上的其他連接請(qǐng)求。服務(wù)器也通過(guò)它的本地端口連接一個(gè) Socket,通過(guò)讀寫(xiě)和客戶端通信。局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)4 Socket 工作過(guò)程Socket 程序的工作過(guò)程:1.建立 Socket 連接:在通信開(kāi)始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接道。2.數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通信。3.關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。2.3 TCP 三次握手第一次握手:原主機(jī)發(fā)送一個(gè)帶有本次連接的序號(hào)的請(qǐng)求的一個(gè)數(shù)據(jù)幀。第二次握手:目的主機(jī)收到請(qǐng)求后,如果同意連接,則發(fā)回一個(gè)帶有一個(gè)本次連接序號(hào)和源端機(jī)連接序列號(hào)的確認(rèn)。第三此握手:源端機(jī)收到含有兩次

21、初始序列號(hào)的應(yīng)答后,再向目的主機(jī)發(fā)送一個(gè)帶有兩次連接的序列號(hào)的確認(rèn)。具體過(guò)程如下:圖 2.1 三次握手協(xié)議局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)5第三章第三章需求分析需求分析3.1 功能需求做為一個(gè)局域網(wǎng)內(nèi)的即時(shí)聊天程序,除了基本的聊天功能,文件傳輸也是經(jīng)常用到的功能。本軟件需具有以下幾個(gè)功能:1.用戶登錄設(shè)立一個(gè)服務(wù)器,實(shí)現(xiàn)多用戶即時(shí)通訊;用戶在登錄的同時(shí)需輸入一些個(gè)性化的信息,以便于各用戶之前的識(shí)別。2.文本聊天聊天室功能,即所謂的群聊,聊天內(nèi)容所有人可見(jiàn);保密聊天功能,即所謂的私聊,聊天內(nèi)容僅聊天雙方可見(jiàn);用戶可對(duì)字體進(jìn)行設(shè)置。3.文件轉(zhuǎn)輸多線程,收發(fā)可同時(shí)進(jìn)行。3.2 性能要求處理數(shù)據(jù)能力

22、時(shí)間特性 響應(yīng)時(shí)間:所有的發(fā)送操作響應(yīng)時(shí)間一般不超過(guò) 1 秒,大量的信息發(fā)送,呈現(xiàn)應(yīng)該在 5 秒內(nèi)顯示或者提示相關(guān)出錯(cuò)信息。 更新處理時(shí)間:所有提交數(shù)據(jù)一般在 3 秒內(nèi)相應(yīng)。 數(shù)據(jù)庫(kù)需求聊天記錄較多,在需要時(shí)能即時(shí)存取。相關(guān)配置信息,需要時(shí)能即時(shí)讀取。 設(shè)計(jì)約束3.2.5 其他標(biāo)準(zhǔn)的約束局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn) 硬件約束 奔騰 4 處理器及以上內(nèi)存:256M 以需求規(guī)格說(shuō)明書(shū) 硬盤(pán):50M 以上剩余空間 屬性.1 可用性 .2 可靠性 .3 效率.4 安全性 .5 可維護(hù)性要求類的構(gòu)建

23、符合高內(nèi)聚低耦合度的要求 3.2.6 外部接口需求 用戶接口用戶界面:采用 Windows 的通用圖形界面,對(duì)用戶友好,且必須對(duì)鼠標(biāo)鍵盤(pán)提供支持,界面設(shè)計(jì)應(yīng)遵循:1. 盡量保持一致性:界面規(guī)范應(yīng)遵循 Winows 軟件界面的規(guī)范 2. 設(shè)計(jì)完整的對(duì)話過(guò)程:系統(tǒng)的每一次對(duì)話都應(yīng)該有明確的次序:開(kāi)始、中間處理過(guò)程、結(jié)束。3. 提供簡(jiǎn)單的錯(cuò)誤處理機(jī)制 4. 提供信息反饋:用多種信息提示用戶當(dāng)前軟件運(yùn)行狀態(tài),軟件界面元件的功能。5. 操作可逆:其動(dòng)作可以是單個(gè)的操作,或者是一個(gè)相對(duì)獨(dú)立的操作序列。 6. 設(shè)計(jì)良好的聯(lián)機(jī)幫助 : 軟件接口 本節(jié)指定需使用的其他軟件產(chǎn)品(如:

24、數(shù)據(jù)管理系統(tǒng)、操作系統(tǒng)、數(shù)學(xué)軟件包) ,以及同其他應(yīng)用系統(tǒng)之間的接口。如果已有完整的接口文件,需在本節(jié)指明。說(shuō)明內(nèi)容包括: a) 接口標(biāo)識(shí);b) 功能描述; 局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)7c) 數(shù)據(jù)流程和控制流程的方向;d) 數(shù)據(jù)格式、容量;e) 接口類型(如手動(dòng)或自動(dòng)) ;f) 接口數(shù)據(jù)中斷的優(yōu)先級(jí)別;g) 中斷響應(yīng)時(shí)間; h) 異常處理等。 對(duì)每一個(gè)所需的軟件產(chǎn)品,需提供名稱、縮寫(xiě)、規(guī)格說(shuō)明、版本號(hào)、來(lái)源等內(nèi)容。3.2.7 通信接口 本產(chǎn)品用戶各終端和服務(wù)器屬于一個(gè)局域網(wǎng),網(wǎng)內(nèi)采用 TCP/IP 或UDP協(xié)。局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)8第四章第四章概要設(shè)計(jì)概要設(shè)計(jì)4.1 體系

25、結(jié)構(gòu)設(shè)計(jì) 復(fù)審數(shù)據(jù)流、控制流圖 4.1軟件體系結(jié)構(gòu)軟件程序結(jié)構(gòu)圖圖 4.2 結(jié)構(gòu)圖局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)9系統(tǒng)配置子系統(tǒng)圖 4.3 系統(tǒng)配置子系統(tǒng)消息記錄子系統(tǒng)圖 4.4 消息記錄子系統(tǒng)4.2 模塊設(shè)計(jì) 用戶掃描系統(tǒng)模塊局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)10圖 4.5 用戶掃描系統(tǒng)模塊圖 4.6 用戶掃描系統(tǒng)模塊 在線交流系統(tǒng)模塊局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)11圖 4.7 在線交流系統(tǒng)模塊 系統(tǒng)配置系統(tǒng) .1 上線提示模塊局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)12圖 4.8 上線提示模塊 設(shè)置個(gè)人資料模塊局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)13圖 4.9 設(shè)置個(gè)人資料模塊 系統(tǒng)屏蔽

26、模塊圖 4.10 系統(tǒng)屏蔽模塊局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)14第五章第五章詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)5.1 用戶登錄模塊只列出程序界面以及與服務(wù)器端通訊部分的代碼:圖 5.1 用戶登錄模塊客戶端 class Connect extends JFrame implements ActionListener, ItemListener, KeyListenerpublic void link() throws Exception / 連接服務(wù)器hostName = hostText.getText().trim();port = Integer.parseInt(portText.getText();

27、client = new Socket(hostName, port);/ 創(chuàng)建一個(gè)流套接字并將其連接到指定 IP 地址的指定端口號(hào)。in = new BufferedReader(new InputStreamReader(client.getInputStream();out = new PrintWriter(client.getOutputStream();out.println(nameText.getText() + & + sex);out.flush();服務(wù)器端:public static void addConnection(Socket s, ClientProc

28、 cp)if (connections = null)connections = new Vector();局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)15connections.addElement(s);if (clients = null)clients = new Vector();clients.addElement(cp);public static void deleteConnection(Socket s, ClientProc cp)throws IOExceptionif (connections != null)connections.removeElement(s);s.clo

29、se();if (clients != null)clients.removeElement(cp);public static Vector getClients()return clients;5.2 用戶列表模塊只列出程序界面以及與服務(wù)器端通訊部分的代碼:客戶端:public void valueChanged(ListSelectionEvent e)/ 監(jiān)聽(tīng)下拉列表的顯示內(nèi)容if (e.getSource() = peopleList)tryString select = (String) peopleList.getSelectedValue();if (select != nul

30、l) / 確保選擇非空String userInfo = select.split();String name = userInfo0.trim(); / 提取名字if (!name.equals(chf.myName) / 不能添加自己int count = chf.perponsComboBox.getItemCount();for (int i = 0; i count; i+)chf.perponsComboBox.setSelectedIndex(i);/ 選擇第 i 項(xiàng)String strName = (String) chf.perponsComboBox局域網(wǎng)內(nèi)的多功能聊天室的

31、設(shè)計(jì)與實(shí)現(xiàn)16.getSelectedItem();if (name.equals(strName) / 如果已經(jīng)在列表中,就復(fù)合框中選中,所以要確保沒(méi)有重名return;/ 如果沒(méi)有添加,就會(huì)執(zhí)行下面語(yǔ)句 添加chf.perponsComboBox.addItem(name); catch (Exception ee)System.out.println(發(fā)生錯(cuò)誤 在 valueChanged + ee);public void actionPerformed(ActionEvent e)if (e.getSource() = refurbishButton) / 如果監(jiān)聽(tīng)到要刷新列表try

32、listModel.clear(); / 清空列表chf.out.println(refurbish); / 發(fā)送刷新請(qǐng)求到服務(wù)器chf.out.flush(); catch (Exception ee)服務(wù)器端:public String getName()return name;public String getSex()return sex;局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)17public Socket getSocket()return s;private void updateList()/ 更新用戶列表(即發(fā)送當(dāng)前在聊天室的用戶到新來(lái)的用戶列表中)Vector cs = Chat

33、Server.getClients();if (cs != null)for (Enumeration e = cs.elements(); e.hasMoreElements();)ClientProc cp = (ClientProc) e.nextElement();String exist_name = cp.getName();String exit_sex = cp.getSex();/* * for (int i = 0;ics.size() ;i+ ) String exist_name * =(ClientProc)cs.elementAt(i).getName(); Str

34、ing exit_sex = * (ClientProc)cs.elementAt(i).getSex(); */System.out.println(old + & + exist_name + & + exit_sex);out.println(old + & + exist_name + & + exit_sex);out.flush();5.3 文本聊天模塊只列出程序界面以及與服務(wù)器端通訊部分的代碼:局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)18圖 5.2 文本聊天模塊客戶端:if (e.getSource() = sentButton)/ 如果監(jiān)聽(tīng)到發(fā)送信息按

35、鈕被點(diǎn)擊trymywords = inMsgField.getText();if (mywords.trim().length() != 0) / 不能發(fā)送空消息也不能都發(fā)空格if (withWho.equals(所有人)outmsg = mywords;/ 發(fā)送到服務(wù)器out.println(outmsg);out.flush();/ 顯示到我的頻道里面insert(myMsgArea, myName + : + mywords);/myMsgArea.setCaretPosition(myMsgArea.getText().length(/ ); else / 對(duì)某個(gè)人交談outmsg =

36、 withWho + & + privateFalse + &+ withWho + & + mywords;局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)19if (privateTalkFlag)outmsg = withWho + & + privateTure + &+ withWho + & + mywords;insert(myMsgArea, 您對(duì) + withWho + 說(shuō): + mywords);/ myMsgArea.setCaretPosition(myMsgArea.getText()./ length(); elseinsert(m

37、yMsgArea, myName + 對(duì) + withWho + 說(shuō): + mywords);/myMsgArea.setCaretPosition(myMsgArea.getText().length(/ );/ 發(fā)送到服務(wù)器out.println(outmsg);out.flush(); catch (Exception ee)ee.printStackTrace();insert(myMsgArea, 與服務(wù)器連接中斷,請(qǐng)重新登錄!);/ myMsgArea.setCaretPosition(myMsgArea.getText().length(); finallyinMsgField.

38、setText(); / 清空輸入框服務(wù)器端:/* * * 發(fā)送信息給所有的人*/public static void sendAll(String s)if (connections != null)for (Enumeration e = connections.elements(); / Enumeration 過(guò)時(shí)的接口,/ 可以用 for each 循環(huán)e.hasMoreElements();)局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)20tryPrintWriter pw = new PrintWriter(Socket) e.nextElement().getOutputStream()

39、;pw.println(s);pw.flush(); catch (IOException ex)ex.printStackTrace();System.out.println(s);/* 發(fā)送信息給單獨(dú)一個(gè)人*/public static boolean sendOne(String name, String msg)if (clients != null)for (Enumeration e = clients.elements(); e.hasMoreElements();)ClientProc cp = (ClientProc) e.nextElement();if (cp.getName().equals(name)tryPrintWriter pw = new PrintWriter(cp.getSocket().getOutputStream();pw.println(msg);pw.flush();return true; / 返回值為真,找到了這個(gè)人可以進(jìn)行聊天 catch (IOException ioe)ioe.printStackTrace();return false;/ 沒(méi)有找到這個(gè)人,應(yīng)該是此人已經(jīng)退出了聊天室局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)21

溫馨提示

  • 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)論