版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上JISHOUUNIVERSITY專業(yè)課課程論文題 目:局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)作 者:學(xué) 號(hào):所屬學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)年級(jí):總 評(píng) 分:完成時(shí)間:吉首大學(xué)信息科學(xué)與工程學(xué)院局域網(wǎng)內(nèi)的多功能聊天室的設(shè)計(jì)與實(shí)現(xiàn)(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 )摘 要在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,隨著Internet的普及和發(fā)展,人們的生活和工作也越來越離不開信息網(wǎng)絡(luò)的支持,而聊天室是人們最常見、最直接的網(wǎng)上交流的方式。本論文主要研究一個(gè)以網(wǎng)絡(luò)交友為主,為廣大用戶提供一個(gè)借助網(wǎng)絡(luò)進(jìn)行人際交往的信息平臺(tái)。本文所設(shè)計(jì)的局域網(wǎng)聊天系統(tǒng)是基于開放的WEB服務(wù)器應(yīng)用程序開發(fā)
2、設(shè)計(jì)的,其主要特征是能動(dòng)態(tài)完成信息的傳遞且具有高效的交互性,有效的處理客戶請求且具有更簡單、更方便的數(shù)據(jù)庫訪問方法,易于維護(hù)和更新。這種技術(shù)程序由JAVA、HTML、數(shù)據(jù)庫和腳本語言組合而成。主要功能模塊包括:用戶登錄、注冊部分;編寫和顯示聊天記錄部分;管理員管理聊天室的管理部分。聊天系統(tǒng)編寫和顯示聊天記錄部分界面友好,提供動(dòng)作、表情、公聊或私聊等操作;管理部分可以刪除不守規(guī)矩的注冊用戶、踢出在線用戶以及刪除某些不合時(shí)宜的聊天記錄等、根據(jù)數(shù)據(jù)庫需求分析,在ACCESS中定義3個(gè)表:用user表來存放注冊用戶信息、用activetable表來存放當(dāng)前在線用戶信息以及用message表來存放聊天記
3、錄。本系統(tǒng)相比較其他信息交流平臺(tái)具有開發(fā)方便、快捷,占用資源少,維護(hù)方便等優(yōu)點(diǎn)?!娟P(guān)鍵詞】Java,數(shù)據(jù)庫,腳本語言,聊天系專心-專注-專業(yè)LAN of multi-function chat room design and ImplementationRaotao (College of Information Science and Engineering,Jishou University,Jishou,Hunan )AbstractThe rapid development of computer technology today, with the popularity and de
4、velopment of Internet, people's 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 communication mode.In this thesis, a network of friends, for the vast number of users with a network
5、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 transmission dynamically with high interactivity, effective customer request and has a mor
6、e 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, registration section; write and display chat recording part; the administrator manage the
7、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 user and delete certain be inopportune or inappropriate chat records, according to the databas
8、e 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 record.This system is compared with other information exchange platform with the developmen
9、t of convenient, fast, less resource occupation, easy maintenance and other advantages.Key words:JAVA; data capture; information analysis ; Winpcap;Jpcap 目 錄第一章引言1.1課題背景及意義在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來越多,各種網(wǎng)絡(luò)應(yīng)用層出不窮,網(wǎng)絡(luò)編程越來越受大廣大程序員的重視。網(wǎng)絡(luò)編程的目的就是指直接或間接地通過網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程中有兩個(gè)主要的問題,一個(gè)是如何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺(tái)或多臺(tái)主機(jī),另一個(gè)就是找
10、到主機(jī)后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸。在TCP/IP協(xié)議中IP層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳輸?shù)穆酚桑蒊P地址可以唯一地確定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ù)器等待客戶提出請求并予以響應(yīng)??蛻魟t在需要服務(wù)時(shí)向服務(wù)器提出申請。服務(wù)器一般作為守護(hù)進(jìn)程始終運(yùn)行,監(jiān)聽網(wǎng)絡(luò)端口,一旦有客戶請求,就會(huì)啟動(dòng)一個(gè)服務(wù)進(jìn)程來響應(yīng)該客戶,同時(shí)自己繼續(xù)監(jiān)聽服務(wù)端口,使后來的客戶也能及時(shí)得到服務(wù)。網(wǎng)絡(luò)聊天是網(wǎng)絡(luò)編程的典型應(yīng)用
11、之一,編寫網(wǎng)絡(luò)聊天軟件對(duì)于學(xué)習(xí)網(wǎng)絡(luò)編程無疑有著很大的幫助。本小組編寫本軟件,旨在通過軟件的編寫與實(shí)現(xiàn),來提高對(duì)網(wǎng)絡(luò)編程的理解和掌握。1.2課題研究現(xiàn)狀網(wǎng)絡(luò)數(shù)據(jù)捕獲技術(shù)是獲取信息的關(guān)鍵技術(shù),它通過監(jiān)聽技術(shù),過濾技術(shù)獲取原始數(shù)據(jù),根據(jù)TCP/IP分層理論進(jìn)行層層拆解,提取相關(guān)協(xié)議中的信息。本設(shè)計(jì)主要通過使用Java編寫出了一款簡單的軟件對(duì)數(shù)據(jù)包信息進(jìn)行捕獲,捕獲出所需要的敏感信息,并且將捕獲出來的信息保存起來。Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE,JavaEE,
12、JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景1。 1.3研究內(nèi)容網(wǎng)絡(luò)編程的目的就是指直接或間接地通過網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程中有兩個(gè)主要的問題,一個(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ù)穆酚桑蒊P地址可以唯一地確定Internet上的一臺(tái)主機(jī)。而TCP層則
13、提供面向應(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ù)器等待客戶提出請求并予以響應(yīng)??蛻魟t在需要服務(wù)時(shí)向服務(wù)器提出申請。服務(wù)器一般作為守護(hù)進(jìn)程始終運(yùn)行,監(jiān)聽網(wǎng)絡(luò)端口,一旦有客戶請求,就會(huì)啟動(dòng)一個(gè)服務(wù)進(jìn)程來響應(yīng)該客戶,同時(shí)自己繼續(xù)監(jiān)聽服務(wù)端口,使后來的客戶也能及時(shí)得到服務(wù)。網(wǎng)絡(luò)聊天是網(wǎng)絡(luò)編程的典型應(yīng)用之一,編寫網(wǎng)絡(luò)聊天軟件對(duì)于學(xué)習(xí)網(wǎng)絡(luò)編程無疑有著很大的幫助。本軟件旨在為同一局域網(wǎng)用戶間提供便利的局域網(wǎng)服務(wù),局域網(wǎng)用戶可以通過此聊天軟件在各終端相互發(fā)送聊天信息,同時(shí)可
14、以快速傳送文件,方便局域網(wǎng)用戶間的快速有效通信。1.4論文組織方式 首先,本論文從目前網(wǎng)絡(luò)的安全現(xiàn)狀開始,詳細(xì)研究了本課題的背景以及意義,由于目前我國已經(jīng)進(jìn)入了網(wǎng)絡(luò)時(shí)代,需要使用自己的網(wǎng)絡(luò)聊天信息安全系統(tǒng)來保護(hù)自己的網(wǎng)絡(luò)聊天信息系統(tǒng),尤其是對(duì)于秘密性的信息,必須將網(wǎng)絡(luò)安全和信息安全放在非常重要的地位。其次,在對(duì)本論文的背景有所了解的情況下,對(duì)本課題所必須的關(guān)鍵技術(shù)進(jìn)行了介紹,包括java的概述,套接字,三次握手等。最后,在對(duì)所必須得基礎(chǔ)知識(shí)有所了解的情況下,按照各模塊的功能,分別詳細(xì)介紹了各個(gè)功能的實(shí)現(xiàn)過程。第二章關(guān)鍵技術(shù)2.1 java概述JAVA語言有下面一些特點(diǎn):簡單、面向?qū)ο?、分布式?/p>
15、解釋執(zhí)行、魯棒、 安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動(dòng)態(tài)性。豐富的類庫JAVA提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο笙到y(tǒng)的需要。語言包提供的支持包括字符串處理、多線程處理、數(shù)學(xué)函數(shù)處理等,可以用它簡單地實(shí)現(xiàn)JAVA程序的運(yùn)行平臺(tái)。實(shí)用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時(shí)間和日期等。輸入輸出包用統(tǒng)一的“流”模型來實(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é)議
16、,提供了與Internet的接口。它支持URL連接,WWW的即時(shí)訪問,并且簡化了用戶/服務(wù)器模型的程序設(shè)計(jì)。JAVA和C、C+對(duì)于變量聲明、參數(shù)傳遞、操作符、流控制等使用了相同的傳統(tǒng),使得熟悉C、C+的程序員能很方便地進(jìn)行編程。同時(shí), JAVA為了實(shí)現(xiàn)其簡單、魯棒、安全等特性,也摒棄了C和C+中許多不合理的內(nèi)容。2.2套接字2.2.1 Socket簡介Socket,簡稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)成為套接字,套接字是在比較低的層次上通信的。具體的說:一個(gè)服務(wù)器應(yīng)用程序一般偵聽一個(gè)特定的端口等待客戶端
17、的連接請求,當(dāng)一個(gè)連接請求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過程中,客戶端被分配一個(gè)本地端口與一個(gè)Socket建立連接,客戶端通過寫Socket來通知服務(wù)器,以讀Socket中的信息,類似的服務(wù)器也獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)來偵聽原始端口上的其他連接請求。服務(wù)器也通過它的本地端口連接一個(gè)Socket,通過讀寫和客戶端通信。2.2.2 Socket工作過程Socket程序的工作過程:1.建立Socket連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接道。2.數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通信。3.關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。2.3
18、 TCP三次握手第一次握手:原主機(jī)發(fā)送一個(gè)帶有本次連接的序號(hào)的請求的一個(gè)數(shù)據(jù)幀。第二次握手:目的主機(jī)收到請求后,如果同意連接,則發(fā)回一個(gè)帶有一個(gè)本次連接序號(hào)和源端機(jī)連接序列號(hào)的確認(rèn)。第三此握手:源端機(jī)收到含有兩次初始序列號(hào)的應(yīng)答后,再向目的主機(jī)發(fā)送一個(gè)帶有兩次連接的序列號(hào)的確認(rèn)。具體過程如下:圖2.1 三次握手協(xié)議第三章需求分析3.1功能需求做為一個(gè)局域網(wǎng)內(nèi)的即時(shí)聊天程序,除了基本的聊天功能,文件傳輸也是經(jīng)常用到的功能。本軟件需具有以下幾個(gè)功能:1.用戶登錄設(shè)立一個(gè)服務(wù)器,實(shí)現(xiàn)多用戶即時(shí)通訊;用戶在登錄的同時(shí)需輸入一些個(gè)性化的信息,以便于各用戶之前的識(shí)別。2.文本聊天聊天室功能,即所謂的群聊,
19、聊天內(nèi)容所有人可見;保密聊天功能,即所謂的私聊,聊天內(nèi)容僅聊天雙方可見;用戶可對(duì)字體進(jìn)行設(shè)置。3.文件轉(zhuǎn)輸多線程,收發(fā)可同時(shí)進(jìn)行。3.2性能要求3.2.1處理數(shù)據(jù)能力3.2.2時(shí)間特性 響應(yīng)時(shí)間:所有的發(fā)送操作響應(yīng)時(shí)間一般不超過1秒,大量的信息發(fā)送,呈現(xiàn)應(yīng)該在5秒內(nèi)顯示或者提示相關(guān)出錯(cuò)信息。 更新處理時(shí)間:所有提交數(shù)據(jù)一般在3秒內(nèi)相應(yīng)。 3.2.3 數(shù)據(jù)庫需求聊天記錄較多,在需要時(shí)能即時(shí)存取。相關(guān)配置信息,需要時(shí)能即時(shí)讀取。3.2.4 設(shè)計(jì)約束3.2.5 其他標(biāo)準(zhǔn)的約束 硬件約束 奔騰4處理器及以上內(nèi)存:256M以需求規(guī)格說明書 硬盤:50M以上剩余空間 屬性3.2
20、.5.2.1 可用性 .2 可靠性 .3 效率.4 安全性 .5 可維護(hù)性要求類的構(gòu)建符合高內(nèi)聚低耦合度的要求 3.2.6 外部接口需求 用戶接口用戶界面:采用Windows的通用圖形界面,對(duì)用戶友好,且必須對(duì)鼠標(biāo)鍵盤提供支持,界面設(shè)計(jì)應(yīng)遵循:1. 盡量保持一致性:界面規(guī)范應(yīng)遵循Winows軟件界面的規(guī)范 2. 設(shè)計(jì)完整的對(duì)話過程:系統(tǒng)的每一次對(duì)話都應(yīng)該有明確的次序:開始、中間處理過程、結(jié)束。3. 提供簡單的錯(cuò)誤處理機(jī)制 4. 提供信息反饋:用多種信息提示用戶當(dāng)前軟件運(yùn)行狀態(tài),軟件界面元件的功能。5. 操作可逆:其動(dòng)作可以
21、是單個(gè)的操作,或者是一個(gè)相對(duì)獨(dú)立的操作序列。 6. 設(shè)計(jì)良好的聯(lián)機(jī)幫助 : 軟件接口 本節(jié)指定需使用的其他軟件產(chǎn)品(如:數(shù)據(jù)管理系統(tǒng)、操作系統(tǒng)、數(shù)學(xué)軟件包),以及同其他應(yīng)用系統(tǒng)之間的接口。如果已有完整的接口文件,需在本節(jié)指明。說明內(nèi)容包括: a) 接口標(biāo)識(shí);b) 功能描述; c) 數(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)品,需提供名稱、縮寫、規(guī)格說明、版本號(hào)、來源等內(nèi)容。3.2.7 通信接口 本產(chǎn)品用戶各終端和服務(wù)器屬于一個(gè)局域網(wǎng),網(wǎng)內(nèi)采用TCP/I
22、P或UDP協(xié)。第四章概要設(shè)計(jì)4.1體系結(jié)構(gòu)設(shè)計(jì)4.1.1 復(fù)審數(shù)據(jù)流、控制流圖軟件體系結(jié)構(gòu)軟件程序結(jié)構(gòu)圖圖4.2 結(jié)構(gòu)圖系統(tǒng)配置子系統(tǒng)圖4.3 系統(tǒng)配置子系統(tǒng)消息記錄子系統(tǒng)圖4.4 消息記錄子系統(tǒng)4.2模塊設(shè)計(jì) 4.2.1 用戶掃描系統(tǒng)模塊圖4.5用戶掃描系統(tǒng)模塊圖4.6用戶掃描系統(tǒng)模塊4.2.2 在線交流系統(tǒng)模塊圖4.7在線交流系統(tǒng)模塊4.2.3 系統(tǒng)配置系統(tǒng) 上線提示模塊圖4.8上線提示模塊4.2.4 設(shè)置個(gè)人資料模塊圖4.9設(shè)置個(gè)人資料模塊4.2.5 系統(tǒng)屏蔽模塊圖4.10系統(tǒng)屏蔽模塊第五章詳細(xì)設(shè)計(jì)5.1用戶登錄模
23、塊只列出程序界面以及與服務(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();client = new Socket(hostName, port);/ 創(chuàng)建一個(gè)流套接字并將其連接到指定 IP 地
24、址的指定端口號(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 cp)if (connections = null)connections = new Ve
25、ctor<Socket>();connections.addElement(s);if (clients = null)clients = new Vector<ClientProc>();clients.addElement(cp);public static void deleteConnection(Socket s, ClientProc cp)throws IOExceptionif (connections != null)connections.removeElement(s);s.close();if (clients != null)clients.r
26、emoveElement(cp);public static Vector getClients()return clients;5.2用戶列表模塊只列出程序界面以及與服務(wù)器端通訊部分的代碼:客戶端:public void valueChanged(ListSelectionEvent e)/ 監(jiān)聽下拉列表的顯示內(nèi)容if (e.getSource() = peopleList)tryString select = (String) peopleList.getSelectedValue();if (select != null) / 確保選擇非空String userInfo = select
27、.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.getSelectedItem();if (name.equa
28、ls(strName) / 如果已經(jīng)在列表中,就復(fù)合框中選中,所以要確保沒有重名return;/ 如果沒有添加,就會(huì)執(zhí)行下面語句 添加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)聽到要刷新列表trylistModel.clear(); / 清空列表ch
29、f.out.println("refurbish"); / 發(fā)送刷新請求到服務(wù)器chf.out.flush(); catch (Exception ee)服務(wù)器端:public String getName()return name;public String getSex()return sex;public Socket getSocket()return s;private void updateList()/ 更新用戶列表(即發(fā)送當(dāng)前在聊天室的用戶到新來的用戶列表中)Vector cs = ChatServer.getClients();if (cs != null
30、)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;i<cs.size() ;i+ ) String exist_name * =(ClientProc)cs.elementAt(i).getName(); String exit_sex = * (ClientProc)c
31、s.elementAt(i).getSex(); */System.out.println("old" + "&" + exist_name + "&" + exit_sex);out.println("old" + "&" + exist_name + "&" + exit_sex);out.flush();5.3文本聊天模塊只列出程序界面以及與服務(wù)器端通訊部分的代碼:圖5.2 文本聊天模塊客戶端:if (e.getSource() = se
32、ntButton)/ 如果監(jiān)聽到發(fā)送信息按鈕被點(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(myMsgAre
33、a.getText().length(/ ); else / 對(duì)某個(gè)人交談outmsg = "withWho" + "&" + "privateFalse" + "&"+ withWho + "&" + mywords;if (privateTalkFlag)outmsg = "withWho" + "&" + "privateTure" + "&"+ withWho + &q
34、uot;&" + mywords;insert(myMsgArea, "您對(duì)" + withWho + "說: "+ mywords);/ myMsgArea.setCaretPosition(myMsgArea.getText()./ length(); elseinsert(myMsgArea, myName + " 對(duì)" + withWho + "說: "+ mywords);/myMsgArea.setCaretPosition(myMsgArea.getText().length(/ )
35、;/ 發(fā)送到服務(wù)器out.println(outmsg);out.flush(); catch (Exception ee)ee.printStackTrace();insert(myMsgArea, "與服務(wù)器連接中斷,請重新登錄!");/ myMsgArea.setCaretPosition(myMsgArea.getText().length(); finallyinMsgField.setText(""); / 清空輸入框服務(wù)器端:/* * * 發(fā)送信息給所有的人*/public static void sendAll(String s)if (
36、connections != null)for (Enumeration e = connections.elements(); / Enumeration過時(shí)的接口,/ 可以用for each循環(huán)e.hasMoreElements();)tryPrintWriter pw = new PrintWriter(Socket) e.nextElement().getOutputStream();pw.println(s);pw.flush(); catch (IOException ex)ex.printStackTrace();System.out.println(s);/* 發(fā)送信息給單獨(dú)一
37、個(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;/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品經(jīng)營企業(yè)員工崗位職責(zé)
- 研究經(jīng)費(fèi)管理改革-洞察分析
- 虛擬現(xiàn)實(shí)與船舶駕駛教學(xué)資源整合-洞察分析
- 研發(fā)投入與產(chǎn)出分析-洞察分析
- 圖像元智能識(shí)別與跟蹤-洞察分析
- 《浙江卷生物》課件
- 云計(jì)算環(huán)境下的安全防護(hù)技術(shù)研究-洞察分析
- 勤儉節(jié)約是美德講話稿范文(16篇)
- 移動(dòng)網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)-洞察分析
- 循環(huán)經(jīng)濟(jì)政策對(duì)堿業(yè)影響-洞察分析
- 職業(yè)健康檢查機(jī)構(gòu)執(zhí)法監(jiān)督檢查表
- 2024年廣東開放大學(xué)《財(cái)務(wù)管理》形成性考核參考試題庫(含答案)
- 化工類行業(yè)分析
- 大班幼兒集體教學(xué)活動(dòng)中有效提問的現(xiàn)狀及其改進(jìn)
- 房屋裝修售后服務(wù)方案
- 民航服務(wù)禮儀(民航服務(wù)類專業(yè))全套教學(xué)課件
- 《可燃?xì)怏w檢測儀》課件
- 《黃土高填方地基技術(shù)規(guī)程》
- 部編版九年級(jí)中考復(fù)習(xí)戲劇閱讀 (教師版)
- 裸光纖施工方案
- 小學(xué)英語-Unit2 Ways to go to school Part B Read and write教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
評(píng)論
0/150
提交評(píng)論