【正文】
基于 JAVA 實(shí)現(xiàn)聊天室范文 基于 JAVA 實(shí)現(xiàn)聊天室 摘 要隨著時(shí)代的發(fā)展時(shí)間信息兩個(gè)概念顯得越來(lái)越突出在第一時(shí)間掌握第一手資料是打敗對(duì)手取得成功的秘訣伴隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展通信業(yè)也蒸蒸日上現(xiàn)在個(gè)人電腦已普及到各個(gè)家庭單位中為了能實(shí)時(shí)準(zhǔn)確地實(shí)現(xiàn)與朋友親人同事之間的聯(lián)系網(wǎng)絡(luò)聊天是一種比較經(jīng)濟(jì)實(shí)惠的途徑其發(fā)展前景可觀 本系統(tǒng)利用 Java中的 socket網(wǎng)絡(luò)編程和多線程技術(shù)實(shí)現(xiàn)主要包括登陸連接服務(wù)器管理客戶聊天三大功能管理員和用戶經(jīng)過(guò)登陸界面分別進(jìn)入到服務(wù) 器端和客戶端客戶通過(guò) socket 連接服務(wù)器服務(wù)器通過(guò)多線程技術(shù)轉(zhuǎn)發(fā)信息到其他客戶端這種服務(wù)器集中轉(zhuǎn)發(fā)信息的優(yōu)點(diǎn)是通信穩(wěn)定缺點(diǎn)是增加了服務(wù)器端的負(fù)擔(dān) 傳統(tǒng)的面對(duì)面之間的交流由于受地域和時(shí)間的影響已經(jīng)滿足不了當(dāng)今社會(huì)的需求利用聊天室這種影響將會(huì)降到最小人與人之間的交流將會(huì)更加方便快捷可以大幅度提高人們的交流效率 關(guān)鍵詞聊天室 Javasocket 多線程 CS The Design and Implementation of ChatRoom Based on JAVA Department of Computer Science and Technology ChaoHu College ChaoHu AhHui 238000 AbstractWith the development and progress of the times the concept of time and information bee more and more outstanding And the winners will be the ones who first grasp the firsthand data As the inter technology is developing rapidly the munications industry is thriving too Personal puters are extensively spreading among all families and units In order to municate with family members friends and workmates accurately but on real time chatting on is one of the more economical and substantial ways which has a favorable prospect This system takes effect by socket work program of Java and multithreadIt has three main functions of login servers manage and chatting The administrator and user log on serverside and clientside separately by the login box The clients connect themselves to servers through the socket then the servers send these messages to other clients by multithread The advantage of forwarding informations centrally results in a stable munication but its weakness leads to a burden to the serverside Traditional facetoface munication is restricted by time and region which can not meet the demands of modern society Chatting room can reduce the influence above to the minimum and the munication among people will be more convenient and quick the intercourse efficiency is increased greatly Keywords chatting room java socket multithread cs 前 言 使用 Java 開(kāi)發(fā)網(wǎng)絡(luò)程序在網(wǎng)絡(luò)飛速發(fā)展的今天已經(jīng)顯得格外重要與使用其他語(yǔ)言開(kāi)發(fā)網(wǎng)絡(luò)程序一樣 Java的網(wǎng)絡(luò)開(kāi)發(fā)是相當(dāng)方便的通過(guò) Socket進(jìn)行網(wǎng)絡(luò)信息傳輸?shù)c其他語(yǔ)言不同 Java語(yǔ)言天生具備網(wǎng)絡(luò)開(kāi)發(fā)的優(yōu)越性使用 Java可以快速開(kāi)發(fā)安全的基于網(wǎng)絡(luò)的服務(wù)和應(yīng)用程序 在網(wǎng)絡(luò)飛速發(fā)展的今天各種各樣的的交流變的非常重要人們的交流已經(jīng)不能局限在小范圍內(nèi)人們渴望與其他國(guó)家或地區(qū)的人們進(jìn)行交流但由于地域的限制使人們不可能在短時(shí)間內(nèi)得到面對(duì)面的交流于是人們不得不使用 Inter 這個(gè)可以把全世界所有的人短時(shí)間內(nèi)都 聯(lián)系到一起的新生事物所以網(wǎng)上聊天室就誕生了剛開(kāi)始的聊天室的功能很簡(jiǎn)單就是單純的文字交流但隨著時(shí)間的發(fā)展和技術(shù)的提高現(xiàn)在的聊天室已經(jīng)具備強(qiáng)大的功能例如傳輸文件語(yǔ)音聊天視頻聊天等使人們不僅僅滿足于言語(yǔ)上的交流還可以分享彼此的珍藏的圖片看到對(duì)方的面容這些新功能都受到了大家的一致好評(píng)隨著手機(jī)可以上網(wǎng)手機(jī)也可以登錄到網(wǎng)上聊天室中使人們不僅僅局限于坐在電腦前聊天可以隨時(shí)隨地的上網(wǎng)聊天 目 錄 第一章 緒論 1 1. 1 論文背景及課題來(lái)源 1 1. 2 本課題在國(guó)內(nèi)外的發(fā)展?fàn)顩r 1 1. 3 應(yīng)解決的問(wèn)題及系統(tǒng)開(kāi)發(fā)意義 1 第二章 開(kāi)發(fā)工具及相關(guān)技術(shù)介紹 2 2. 1 Java 與 Socket 簡(jiǎn)介 2 2. 2 JBuilder5 介紹 3 2. 3 CS 模型介紹 3 2. 4 用 Java 實(shí)現(xiàn) Socket 模型 4 2. 5 Java 中的線程模型簡(jiǎn)介 5 2. 6 SQL SERVER 2020 簡(jiǎn)介 5 第三章 系統(tǒng)需求分析 7 3. 1 系統(tǒng)任務(wù)描述 7 3. 2 系統(tǒng)功能分析 7 3. 2. 1 系統(tǒng)的功能需求 7 322 系統(tǒng)數(shù)據(jù)流圖 8 323 系統(tǒng)數(shù)據(jù)分析 9 33 系統(tǒng)可行性分析 10 第四章 系統(tǒng)設(shè)計(jì) 12 41 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 12 42 數(shù)據(jù)庫(kù)設(shè)計(jì) 14 43 系統(tǒng)功能模塊詳細(xì)設(shè)計(jì) 14 第五章 編碼與實(shí)現(xiàn) 18 51 系統(tǒng)主要模塊代碼 18 511 啟動(dòng)停止服務(wù)器 18 512 客戶端連接服務(wù)器 19 513 聊天室發(fā)送信息 20 514 服務(wù)器轉(zhuǎn)發(fā)信息 20 515 服務(wù)器顯示在線用戶人數(shù) 21 52 系統(tǒng)測(cè)試 21 結(jié) 束 語(yǔ) 26 參考文獻(xiàn) 27 致 謝 28 附 錄 29 附錄 A 源程序主要代碼 29 第章 緒論論文背景及課題來(lái)源 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和普及 Inter 已經(jīng)成為人 們獲取有關(guān)信息和相互交流的重要途徑之一越來(lái)越多的機(jī)構(gòu)和組織開(kāi)始利用網(wǎng)絡(luò)資源傳遞發(fā)布收集和管理信息這對(duì)各種類型的網(wǎng)絡(luò)提供一次很大的挑戰(zhàn)與機(jī)遇特別是通過(guò)網(wǎng)絡(luò)進(jìn)行信息交互的這種活動(dòng)更加使網(wǎng)絡(luò)的經(jīng)營(yíng)方式充滿了活力和機(jī)動(dòng)性 基于 CS模型的 Java聊天室是應(yīng)用于網(wǎng)絡(luò)交流領(lǐng)域的系統(tǒng)它的主要特點(diǎn)有通用性聊天室系統(tǒng)在各種各樣的網(wǎng)絡(luò)中均可以運(yùn)行系統(tǒng)具有較高的可移植性和使用性 實(shí)用性系統(tǒng)具有良好的人機(jī)界面便于各類使用者操作提供了人性化的服務(wù) 及時(shí)性通過(guò)網(wǎng)絡(luò)的連接系統(tǒng)雙方的交流可以在短期內(nèi)進(jìn)行相比與傳統(tǒng)面對(duì)面的交流節(jié)省不少時(shí)間聊天 室中聊天內(nèi)容的及時(shí)性和準(zhǔn)確性是極其重要的它主要針對(duì)當(dāng)今社會(huì)快節(jié)奏生活人們沒(méi)有很多時(shí)間來(lái)等信息本系統(tǒng)提供的功能便于系統(tǒng)使用雙方的信息交流有效的提高了使用者的使用效率縮短了使用者的使用時(shí)間本課題在國(guó)內(nèi)外的發(fā)展?fàn)顩r隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和普及多數(shù)網(wǎng)站紛紛利用自己的網(wǎng)絡(luò)資源建立聊天室并為客戶提供各種各樣便捷的服務(wù)中國(guó)的一些龍頭網(wǎng)站如 sina 有很多聊天室供國(guó)內(nèi)外的不同的人們進(jìn)行不同話題的討論不僅將會(huì)員發(fā)展由國(guó)內(nèi)延伸到國(guó)際更是為提高自身的知名度提供了方便聊天室的開(kāi)放性信息資源的多樣性可為網(wǎng)站發(fā)展提供優(yōu)良的廣告宣傳和商品推廣 這是其他網(wǎng)站活動(dòng)方式所無(wú)法比擬的聊天室趨向方便化快捷化是各大網(wǎng)站成長(zhǎng)的必然經(jīng)歷的階段應(yīng)解決的問(wèn)題及系統(tǒng)開(kāi)發(fā)意義本系統(tǒng)針對(duì)聊天室用戶的需要建立了客戶端和服務(wù)器端主要解決的問(wèn)題包括 服務(wù)器端和客戶端要實(shí)現(xiàn)界面化并且界面盡量人性化 服務(wù)器端能夠正確的啟動(dòng)并且時(shí)刻監(jiān)視客戶端保持與客戶端的連接 客戶端能夠快速準(zhǔn)確的連接上服務(wù)器端發(fā)送的信息經(jīng)服務(wù)器端可以轉(zhuǎn)發(fā)給其他客戶 異常處理對(duì)于用戶的不正確的操作系統(tǒng)應(yīng)該有提示 基于 CS的 Java聊天室系統(tǒng)它的開(kāi)發(fā)意義在于為人們之間相互交流提供了一個(gè)快捷方便的應(yīng)用平臺(tái)大型網(wǎng)站可以通過(guò) 聊天室來(lái)提高自身的知名度增加的訪問(wèn)流量 第章 開(kāi)發(fā)工具及相關(guān)技術(shù)介紹 Java 與 Socket 簡(jiǎn)介 Java 語(yǔ)言是 Sun 公司于 1991 年創(chuàng)建的一種新的程序設(shè)計(jì)語(yǔ)言該語(yǔ)言與 CC等傳統(tǒng)程序設(shè)計(jì)語(yǔ)言不同具有突出的平臺(tái)獨(dú)立性高度的可靠性和安全性特點(diǎn)1999 年 6 月 SUN 公司重新定義了 Java 技術(shù)的結(jié)構(gòu)將 Java2 平臺(tái)分為三個(gè)版本標(biāo)準(zhǔn)版 J2SE 企業(yè)版 J2EE 和微縮版 J2ME 目前 Java 技術(shù)除了沿著 J2SEJ2EEJ2ME 三種技術(shù)為主脈絡(luò)迅速發(fā)展外還密切關(guān)注 Inter 環(huán)境下各種新型信息技術(shù)的發(fā)展并能夠迅速與這些新技術(shù)融 合積極支持這些新技術(shù)應(yīng)用的開(kāi)發(fā) Socket是 Java中需要編寫較低層次的網(wǎng)絡(luò)通信程序例如 ClientServer 應(yīng)用程序時(shí)提供的一種通訊機(jī)制 Socket 是兩個(gè)程序進(jìn)行雙向數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)通信的端點(diǎn)一般由一個(gè)地址加上一個(gè)端口號(hào)來(lái)標(biāo)識(shí)每個(gè)服務(wù)程序都在一個(gè)眾所周知的端口上提供服務(wù)而想使用服務(wù)的客戶端程序則需要連接該端口通過(guò) Socket 的數(shù)據(jù)是原始字節(jié)流信息通信雙方必須根據(jù)約定的協(xié)議對(duì)數(shù)據(jù)進(jìn)行處理與解釋 Socket 通信機(jī)制提供了兩種通信方式有連接方式 TCP和無(wú)連接方式 UDP數(shù)據(jù)報(bào)有連接方式中通信雙方在開(kāi)始時(shí)必須進(jìn)行一 次連接過(guò)程建立一條通信鏈路通信鏈路提供了可靠的全雙工的字節(jié)流服務(wù)無(wú)連接方式中通信雙方不存在一個(gè)連接過(guò)程一次網(wǎng)絡(luò) IO 以一個(gè)數(shù)據(jù)報(bào)形式進(jìn)行而且每次網(wǎng)絡(luò) IO 可以和不同主機(jī)的不同進(jìn)程進(jìn)行無(wú)連接方式開(kāi)銷小于有連接方式但是所提供的數(shù)據(jù)傳輸服務(wù)不可靠不能保證數(shù)據(jù)報(bào)一定到達(dá)目的地 Java 的有連接通信采用流式 IO 模式 Socket 是兩個(gè)進(jìn)程間通信鏈的端點(diǎn)每個(gè) Socket有兩個(gè)流一個(gè)輸入流和一個(gè)輸出流只要向 Socket的輸出流寫一個(gè)進(jìn)程就可以通過(guò)網(wǎng)絡(luò)連接向其他進(jìn)程發(fā)送數(shù)據(jù)同樣通過(guò)讀 Socket 的輸入流就可以讀取傳輸來(lái)的數(shù)據(jù)有連接 通信一般要經(jīng)歷下四個(gè)基本步驟 創(chuàng)建 Socket 建立連接 打開(kāi)連接到 Socket 的輸入輸出流 按照一定的協(xié)議對(duì) Socket 進(jìn)行讀寫操作 關(guān)閉 Socket 第 3 步是程序員用來(lái)調(diào)用 Socket 和實(shí)現(xiàn)程序功能的關(guān)鍵步驟其他三步在各種程序中基本相同 [5]JBuilder5 介紹 JBuilder5 是美國(guó) Borland 公司最新推出的遵循 SUN 公司 J2EE 標(biāo)準(zhǔn)的集成開(kāi)發(fā)工具是目前使用最廣泛的 Java 開(kāi)發(fā)工具之一 JBuilder 作為業(yè)界領(lǐng)先的Java 開(kāi)發(fā)工具在集成了 Tomcat 并支持 WebLogic 的同時(shí)其套裝版更是集成了DreamweaverUltraDevRational Rose 等產(chǎn)品 JBuilder5 提供了可視化的集成開(kāi)發(fā)工具支持開(kāi)發(fā)人員向?qū)O大地簡(jiǎn)化了開(kāi)發(fā)人員的工作使開(kāi)發(fā)更為快捷方便JB