JAVA多用戶群聊的基于TCP協(xié)議的即時(shí)通訊系統(tǒng)操作系統(tǒng)課程設(shè)計(jì)說明書(源程序)_第1頁
JAVA多用戶群聊的基于TCP協(xié)議的即時(shí)通訊系統(tǒng)操作系統(tǒng)課程設(shè)計(jì)說明書(源程序)_第2頁
JAVA多用戶群聊的基于TCP協(xié)議的即時(shí)通訊系統(tǒng)操作系統(tǒng)課程設(shè)計(jì)說明書(源程序)_第3頁
JAVA多用戶群聊的基于TCP協(xié)議的即時(shí)通訊系統(tǒng)操作系統(tǒng)課程設(shè)計(jì)說明書(源程序)_第4頁
JAVA多用戶群聊的基于TCP協(xié)議的即時(shí)通訊系統(tǒng)操作系統(tǒng)課程設(shè)計(jì)說明書(源程序)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)說明書基于TCP協(xié)議的即時(shí)通訊系統(tǒng)(JAVA多用戶群聊)研究意義 課程設(shè)計(jì)意義及背景在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來越多,各種網(wǎng)絡(luò)應(yīng)用層出不窮,網(wǎng)絡(luò)編程越來越受大廣大程序員的重視。Java語言創(chuàng)建之初的目的之一就是為了能夠很好地進(jìn)行網(wǎng)絡(luò)通信。簡(jiǎn)單的說,網(wǎng)絡(luò)編程就是與其他計(jì)算機(jī)進(jìn)行信息交換。網(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

2、上的一臺(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)聽網(wǎng)絡(luò)端口,一旦有客戶請(qǐng)求,就會(huì)啟動(dòng)一個(gè)服務(wù)進(jìn)程來響應(yīng)該客戶,同時(shí)自己繼續(xù)監(jiān)聽服務(wù)端口,使后來的客戶也能及時(shí)得到服務(wù)。1.2 研究?jī)?nèi)容1本次課程設(shè)計(jì)用java語言的AWT和Swing設(shè)計(jì)用戶界面,java語言的網(wǎng)絡(luò)編程和多線程設(shè)計(jì)實(shí)現(xiàn)后臺(tái)。順利完成了一個(gè)實(shí)現(xiàn)了多用戶群聊的基于TCP協(xié)議的

3、即時(shí)通訊系統(tǒng)。2. 基于TCP協(xié)議的即時(shí)通訊系統(tǒng)所表示的就是一個(gè)通過java網(wǎng)絡(luò)編程和多線程實(shí)現(xiàn)的C/S架構(gòu)的簡(jiǎn)單的群聊系統(tǒng),其包括:打開服務(wù)器界面,設(shè)置相應(yīng)的合法端口,根據(jù)合法端口啟動(dòng)服務(wù)器,根據(jù)合法的用戶名密碼和端口號(hào)進(jìn)行用戶登陸,服務(wù)器和聊天室的在線用戶列表顯示,客戶端之間的群聊等操作。2.1設(shè)計(jì)要求:完成N個(gè)生產(chǎn)者和M個(gè)消費(fèi)者之間的并發(fā)控制,N、M不低于5,數(shù)據(jù)發(fā)送和接收緩沖區(qū)大小不小于10個(gè)。某個(gè)生產(chǎn)者進(jìn)程生產(chǎn)的消息供K個(gè)消費(fèi)者進(jìn)程消費(fèi)。K=M。某些消費(fèi)進(jìn)程消費(fèi)多個(gè)生產(chǎn)者生產(chǎn)的消息。生產(chǎn)者和消費(fèi)者之間的對(duì)應(yīng)關(guān)系可以在程序開始有一個(gè)文件中讀入,也可以動(dòng)態(tài)調(diào)整。每個(gè)生產(chǎn)進(jìn)程生產(chǎn)M個(gè)消息后

4、結(jié)束運(yùn)行。如果一個(gè)消費(fèi)者進(jìn)程沒有對(duì)應(yīng)的生產(chǎn)者進(jìn)程在運(yùn)行后,也結(jié)束運(yùn)行。進(jìn)程間通信、并發(fā)(同步/互斥)、文件讀寫內(nèi)存管理、Dll、Windows消息機(jī)制、IO (尚未最終定型)服務(wù)器端的主要功能如下。a) 在特定端口上進(jìn)行偵聽,等待客戶端連接。b) 用戶可以配置服務(wù)端的偵聽端口,默認(rèn)端口為8888。c) 向已經(jīng)連接到服務(wù)器端的用戶發(fā)送系統(tǒng)消息。d) 統(tǒng)計(jì)在線人數(shù)e) 當(dāng)停止服務(wù)時(shí),斷開與別的用戶連接??蛻舳说闹饕δ苋缦?。f) 連接到已經(jīng)開啟聊天服務(wù)的服務(wù)端。g) 用戶可以配置要連接服務(wù)器的IP地址與端口號(hào)。h) 當(dāng)服務(wù)器開啟的話,用戶可以隨時(shí)登錄與退出。i) 用戶可以向所有人或者某一個(gè)人發(fā)送消

5、息。本次課程設(shè)計(jì),用到了套接字、數(shù)據(jù)報(bào)通信、URL與URLConnection的相關(guān)技術(shù),實(shí)現(xiàn)了一個(gè)可以進(jìn)行簡(jiǎn)單通信的小型聊天室系統(tǒng)的開發(fā)。圖2.1 服務(wù)器端功能模塊圖客戶端端口設(shè)置用戶設(shè)置登錄發(fā)送消息連接設(shè)置退出退出圖客戶端功能模塊圖一、 系統(tǒng)的功能結(jié)構(gòu)圖基于TCP協(xié)議的即時(shí)通訊系統(tǒng)包含五大功能模塊,分別是服務(wù)器端口設(shè)置,服務(wù)器啟動(dòng),服務(wù)器在線用戶列表顯示,客戶端登陸,客戶端群聊,客戶端在線用戶列表顯示。系統(tǒng)功能結(jié)構(gòu)圖如圖所示。即時(shí)通訊系統(tǒng)系統(tǒng)消息服務(wù)器客戶端端口設(shè)置服務(wù)器啟動(dòng)注冊(cè)、登錄私聊、群聊在線用戶列表停止服務(wù)在線用戶列表圖2.3 系統(tǒng)結(jié)構(gòu)圖實(shí)現(xiàn)服務(wù)器和客戶端登陸以及客戶端群聊界面利用

6、java語言的AWT和Swing實(shí)現(xiàn),群聊功能利用java語言網(wǎng)絡(luò)編程的多線程和網(wǎng)絡(luò)編程的知識(shí)實(shí)現(xiàn)。 本系統(tǒng)中我們利用Java實(shí)現(xiàn)基于C/S模式的聊天室系統(tǒng),分為服務(wù)器端和客戶端兩部分,運(yùn)用Socket套接字實(shí)現(xiàn)客戶方和服務(wù)方的鏈接,服務(wù)器端通過端口設(shè)置在特定端口上進(jìn)行監(jiān)聽,等待客戶端的連接,一旦客戶端連接成功,則可以向連接成功的用戶發(fā)送系統(tǒng)消息,可以接收所有客戶端發(fā)送的消息并顯示;客戶端則與服務(wù)器端規(guī)定的端口進(jìn)行連接,連接成功后可以登錄,登錄成功后便可以和所選的對(duì)象聊天,可以發(fā)送信息,也可以接收聊天對(duì)象所發(fā)送過來的信息,并顯示信息內(nèi)容。 服務(wù)器客戶端A客戶端B客戶端C客戶端E客戶端D聊天室數(shù)

7、據(jù)流圖5.1服務(wù)器端監(jiān)聽功能的實(shí)現(xiàn)服務(wù)器端監(jiān)聽功能實(shí)現(xiàn)的流程如下:首先,利用添加時(shí)間事件偵聽與事件處理,來啟動(dòng)和停止服務(wù),通過調(diào)用類實(shí)現(xiàn)對(duì)于服務(wù)器端界面用戶上線與下線功能的監(jiān)聽,該類對(duì)用戶上線下線的偵聽是通過調(diào)用用戶鏈表類(UserLinkList)來實(shí)現(xiàn)的,當(dāng)用戶上線或下線情況發(fā)生變化時(shí),該類會(huì)對(duì)主類的界面進(jìn)行相應(yīng)的修改。 對(duì)于服務(wù)器端界面用戶上線與下線功能的監(jiān)聽通過來實(shí)現(xiàn),首先服務(wù)器端處在監(jiān)聽的狀態(tài),同時(shí)創(chuàng)建輸入輸出流,得到客戶端的登錄信息,將上線下線的具體信息顯示在服務(wù)器界面上。服務(wù)器端監(jiān)聽用戶上線下線功能的流程圖如下所示:accept(),接受連接,等待客戶端的鏈接建立連接,通過輸入輸出流得到客戶端登錄信息顯示用戶上線下線信息,對(duì)服務(wù)器端的界面進(jìn)行相應(yīng)修改closesocket(),關(guān)閉新建立的套接字closesocket()關(guān)閉最初建立的套接字客戶端是否成功登錄否是socket(),建立數(shù)據(jù)報(bào)套接字bind()套接字,與本地地址相鏈接listen(),通知TCP,服務(wù)器準(zhǔn)備好套接字在的事件處理中調(diào)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論