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

正文內(nèi)容

計算機專業(yè),網(wǎng)絡(luò)電子白板系統(tǒng)設(shè)計與實現(xiàn)(編輯修改稿)

2025-01-09 01:16 本頁面
 

【文章內(nèi)容簡介】 由用戶的發(fā)送線程發(fā)送該用戶的輸入數(shù)據(jù)到服務(wù)器。服務(wù)器端的主線程負責監(jiān) 第 9 頁 共 32 頁 聽某個端口,并為每個發(fā)出請求的用戶建立用戶空間線程,這個線程負責接收記錄用戶的信息,更新用戶名單列表,接收用戶的發(fā)送線程發(fā)出的數(shù)據(jù),并交給服務(wù)器轉(zhuǎn)發(fā)線程進行轉(zhuǎn)發(fā)。服務(wù)器轉(zhuǎn)發(fā)線程根據(jù)用戶名單列表,逐一 發(fā)送轉(zhuǎn)發(fā)數(shù)據(jù)到每個用戶的接收線程。在客戶端,用戶接收線程接收服務(wù)器轉(zhuǎn)發(fā)的數(shù)據(jù),由用戶 端 主線程進行處理后顯示。 客戶端的輸入數(shù)據(jù)類型分為兩類: 純 文本和圖形對象。 純 文本用于客戶之間進行文字交談,圖形對象則包括直線、矩形、圓等 圖形的形式進行圖形交談 。每一種數(shù)據(jù)類型都被包裝成數(shù)據(jù)包 (暫存在緩沖區(qū)里的形式) 在網(wǎng)絡(luò)上傳送,客戶端 還要在接收到服務(wù)器轉(zhuǎn)發(fā)同樣的數(shù)據(jù)包后,進行 解數(shù)據(jù)包 ,也就是對字符串進行分析后顯示 。 系統(tǒng)數(shù)據(jù)流設(shè)計 共享電子白板就是一個服務(wù)器端和多個同步的客戶端進行信息交流的過程,這種結(jié)構(gòu)就是 C/S 體系 結(jié)構(gòu)的信息流處理過程,本共享電子白板的信息流處理如下圖所示。 系 統(tǒng) 啟 動系 統(tǒng) 監(jiān) 聽 及 信息 處 理服 務(wù) 器 系 統(tǒng) 退出連 接 服 務(wù) 器消 息 處 理客 戶 端 退 出發(fā)送請求發(fā) 送 信 息接 受 轉(zhuǎn) 發(fā) 信 息系統(tǒng)退出請求服 務(wù) 器 端 客 戶 端 圖 共享電子白板的信息流處理圖 共享電子白板大致的實現(xiàn)模型是: ( 1)服務(wù)器分配一個端口號。如果客戶請求一個連接,服務(wù)器使用 accept() 第 10 頁 共 32 頁 方法打開 socket 連接,從而進行了正常的信息通信。 ( 2)客戶在 host 的 port 端口建立連接。 服務(wù)器和客戶使用 InputStream和 OutputStream進行通信。下面接著分析共享電子白板系統(tǒng)的信息傳遞情況。 由客戶端向服務(wù) 器端傳遞的主要消息 ( 1)登錄鏈接時,在發(fā)送消息前面添加上“ PEOPLE:”再加上用戶名稱用引號( :)隔開,再加上 IP 地址信息傳給服務(wù)器。 ( 2)在發(fā)送純文字信息時,在消息前面添加上“ MSG:”,再加上發(fā)送信息的用戶名稱再用引號( :)隔開,再加上要發(fā)送的純文字的消息信息。然后發(fā)送給服務(wù)器。 ( 3)在發(fā)送圖形信息中的文本信息時,在消息前面添加上“ DRAW:”,再加上文本關(guān)鍵字名后加上引號( :),再加上發(fā)送信息的用戶名加上引號( :),再加上顏色分為紅( R:)、綠( G:)、藍( B:),這些顏色對文本字體沒有任何的 作用,只是便于客戶端的接收分析,再加上起點和終點的坐標值,每一個坐標的( X, Y)值都要用同樣的引號(:)隔開,再加上文本信息和引號(:)。然后發(fā)送給服務(wù)器。 ( 4)在發(fā)送圖形信息中的線圖時,在消息前面添加上“ DRAW:”,再加上所繪畫圖形的關(guān)鍵字名后加上引號( :),再加上發(fā)送信息的用戶名加上引號( :),再加上顏色分為紅( R:)、綠( G:)、藍( B:),再加上起點和終點坐標值,每一個坐標的 (X,Y)值都要用同樣的引號(:)隔開。然后發(fā)送給服務(wù)器。 ( 5)在用戶退出共享電子白板系統(tǒng)時,發(fā)送消息中添加“ QUIT: ”以及退出系統(tǒng)的用戶名稱,然后將消息傳送給服務(wù)器。 信息的發(fā)送都是以字符的形式發(fā)送出去的,通過暫緩沖區(qū)緩存方法暫存后發(fā)送給服務(wù)器端的,格式一般如下圖所示。圖形繪制的各個值之間都要用引號( :)隔開。 客戶端像服務(wù)器端傳遞消息的格式如下: 第 11 頁 共 32 頁 關(guān) 鍵 字 信 息 頭 : 用 戶 名 稱 : 純 文 字 和 圖 形 繪 制 信 息 : 圖 發(fā)送信息格式 由服務(wù)器端向客戶端傳遞的主要消息 ( 1)服務(wù)器進行鏈接起動服務(wù)器工作。 ( 2)服務(wù)器管理員可以向所示已登錄鏈接成功的用戶發(fā)送任何信息。在消息前面添加上“ MSG:”,再加上“ SERVER:”再加上所要發(fā)送的文字信息。 ( 3)用戶登錄鏈接時向其他所有已登錄的用戶發(fā)出更新消息,在消息前面添加“ PEOPLE:”以及登錄鏈接的用戶名稱,然后發(fā)送給所有已登錄的用戶端。 ( 4)收到用戶的純文字、圖形消息信息時,服務(wù)器則把它以同樣的格式向所有已鏈接登錄的用戶轉(zhuǎn)發(fā)信息出去給客戶端。 ( 5)有用戶注銷時,向所有要線的用戶發(fā)出通知,在消息前面添加上“ QUIT:”信息和用戶名稱,同時更新用戶列表信息,然后發(fā)送給所有客戶進行更新和顯示。 ( 6)當服務(wù)器退出時,服務(wù)器向所有在線客戶發(fā)送服務(wù)器關(guān)閉信息,在消息前面 添加上“ QUIT:”和“ SERVER:”信息,并關(guān)閉所有服務(wù)鏈接。 信息的發(fā)送都是以字符的形式發(fā)送出去的,通過緩沖區(qū)緩存方法暫存后發(fā)送或轉(zhuǎn)發(fā)的給所有在線客戶端,格式一般如下圖所示。圖形繪制的各個值之間都要用引號( :)隔開。 服務(wù)器像客服端傳遞消息的格式如下: 關(guān) 鍵 字 信 息 頭 : 用 戶 名 稱 : 純 文 字 和 圖 形 繪 制 信 息 : 圖 第 12 頁 共 32 頁 4.系統(tǒng) 詳細設(shè)計與 實現(xiàn) 系統(tǒng)的開發(fā) 工具 和 語言 環(huán)境 ( 1) 在編程語言的選擇上,考慮到電子白板系統(tǒng)具有如下特點 : ① 系統(tǒng)主要進行網(wǎng)絡(luò)連接和數(shù)據(jù)傳送; ② 客戶 端存在不同類型的輸入數(shù)據(jù)類型,例如各種幾何圖形和文字等; ③ 系統(tǒng)中存在多個線程,并且彼此之間要進行通信; 決定選用 Java 語言,因為 Java 是一種面向?qū)ο蟮木W(wǎng)絡(luò)編程語言,它支持多線程,并且, Java 的平臺無關(guān)性以及安全性更是其他編程語言無法比擬的。 ( 2) 由 于目前用戶對界面的要求逐步提高,因此,現(xiàn)在的可視化編程已經(jīng)取代了傳統(tǒng)的用戶界面的設(shè)計方法。而在可視化編程中,人機之間的直接聯(lián)系主要是通過一些窗口和對話框來實現(xiàn) 。而 JBuilder9 也 正 是通過這些窗口和對話框來實現(xiàn)窗體 。 選 擇 Borland Jbuilder 作為開發(fā)工具 , 因為 它是一個強大的集成 Java 軟件開發(fā)工具, 可以快速開發(fā)包括復雜企業(yè)級應(yīng)用系統(tǒng)的各種 Java 程序 ,對于使用可視化工具開發(fā)程序有很多好處,其中最顯著的是能夠快速生成程序框架、設(shè)計圖形界面、調(diào)試程序等 。 系統(tǒng)程序設(shè)計 服務(wù)器端程序設(shè)計流程 按照服務(wù)器打開鏈接到關(guān)閉的順序,可以將服務(wù)器端程序設(shè)計流程描述如下幾點。 ( 1)創(chuàng)建服務(wù)器,初始化服務(wù)器套接字,并使其處于監(jiān)聽狀態(tài)。 ( 2)當用戶登錄鏈接時,將目前的在線用戶列表發(fā)給該用戶,在服務(wù)器列表中記錄該用戶的 登錄鏈接信息,并顯示在服務(wù)器端的相應(yīng)位子,將該用戶添加到在線用戶列表中,記錄用戶列表中的人數(shù),并顯示出現(xiàn)在的在線人數(shù)用多少個。 第 13 頁 共 32 頁 ( 3)在發(fā)送消息時,服務(wù)器只是把從客戶端接收的信息進行轉(zhuǎn)發(fā)的功能形式。 ( 4)若某用戶注銷,則向所有在線用戶發(fā)送通知,通知該用戶關(guān)閉信息,同時在服務(wù)器列表中記錄該項用戶的注銷信息,并從登錄鏈接用戶列表中將該用戶刪除掉,同時也要記錄更新服務(wù)器在線用戶列表中的人數(shù),發(fā)送給所有在線用戶,并顯示在相應(yīng)的位子。 ( 5)當服務(wù)器需要退出時,向所有用戶發(fā)送關(guān)閉的信息,然后注銷所有用戶列表,服務(wù)器 關(guān)閉信息發(fā)送通知所有用戶。 客戶端程序設(shè)計流程 按照用戶從登錄到注銷的順序,客戶端程序設(shè)計流程如下所示。 ( 1) 用戶登錄連接服務(wù)器,把用戶名稱和 IP 地址信息發(fā)送給服務(wù)器,建立起一個連接。 ( 2) 接收服務(wù)器消息,對不同的消息采用不同的處理方法: ① 當收到用戶登錄連接返回的消息時,從中提取出已經(jīng)登錄用戶列表,并逐個的添加到用戶端的用戶列表中。 ② 收到用戶發(fā)送來的消息,也就是服務(wù)器轉(zhuǎn)發(fā)過來的消息時,顯示在相應(yīng)的消息框中。 ③ 收到其他用戶注銷的消息時,從用戶列表中刪除用戶,更新用戶列表,也就是用服務(wù)器轉(zhuǎn)發(fā) 的更新后的用戶列表去一個個的添加到客戶端的用戶列表中。 ( 3) 發(fā)送消息時,對不同的消息發(fā)送方式采用不同的處理方法:對發(fā)送純文字信息和圖形繪制信息的關(guān)鍵字標記都不一樣,便于服務(wù)器端轉(zhuǎn)發(fā)和客戶端接收的分析顯示。 ( 4) 斷開連接。若用戶斷開與服務(wù)器端的連接,則發(fā)送一個消息給服務(wù)器表示退出服務(wù)器連接,這一消息前面要添加“ QUIT:”以及退出用戶名稱信息。 第 14 頁 共 32 頁 服務(wù)器端的實現(xiàn)及相關(guān)類和方法 服務(wù)器的實現(xiàn) 共享電子白板的服務(wù)器端是實現(xiàn)對客戶端信息的記錄和轉(zhuǎn)發(fā)功能,共享電子白板的服務(wù)器端界面的實現(xiàn)是通過 Java Swing 技術(shù)編寫出來的,服務(wù)器端界面如下圖所示。 圖 共享電子白板服務(wù)器界面 服務(wù)器啟動連接后,會在服務(wù)器界面的系統(tǒng)消息框中顯示出服務(wù)器連接成功,服務(wù)器時時的監(jiān)聽客戶端的請求連接,如果有客戶端用戶的請求連接時,服務(wù)器就記錄用戶的用戶名稱和 IP 地址信息,把用戶名稱增加到用戶列表名單中,并統(tǒng)計和顯示用戶列表名單的在線人數(shù),服務(wù)器端把接收到客戶端的用戶信息添加并顯示到服務(wù)器界面的用戶信息表中,用戶信息表是用來記錄每一個用戶的用戶名、 IP 地址和連接情況,同時在系統(tǒng)消息框中顯示出相應(yīng)的信息;如果 接收到的是用戶的會議討論信息,也就是純文字和圖形信息時,服務(wù)器通過分析后再進行轉(zhuǎn)發(fā)給所有在線用戶;如果接收的是用戶的請求退出時,服務(wù)器更新用戶列表名單,用戶在線人數(shù)減一并顯示出來,并在用戶信息表中銷去 第 15 頁 共 32 頁 請求退出用戶的所有信息和在系統(tǒng)消息框中提示某某用戶斷開連接 ,同時把請求退出的用戶名稱發(fā)送給所有在線用戶。如果是服務(wù)器退出,也是要把服務(wù)器端關(guān)閉的信息通知給所有要線用戶,并注銷和關(guān)閉所有服務(wù)。其上面的所有實驗結(jié)果如下圖所示。 圖 服務(wù)器實現(xiàn)的相關(guān)類和方法 服務(wù)器端的實現(xiàn)有以下 幾個類和方法: ( 1) Application1 類,這個類是服務(wù)器工程的執(zhí)行類,是 JBuilder 工具在服務(wù)器工程里面創(chuàng)建一個 Java Application 時 ,自動生成的類。也就是整個服務(wù)器工程的主類。 ( 2) Frame1 類,這個類是服務(wù)器界面的實現(xiàn)類,是用來實現(xiàn)服務(wù)器界面上的 各 個組建的。 服務(wù)器啟動鏈接的功能實現(xiàn)的代碼如下。 void link_actionPerformed(ActionEvent e) { if (serverSocket == null) { try { serverSocket = new ServerSocket(4000)。 第 16 頁 共 32 頁 ?? } } if (serverSocket != null) { (系統(tǒng)提示 : 服務(wù)器 + 已經(jīng)啟動 \n)。 Thread a = new watch(this)。 ()。 } } ( 3) watch 類,這個類是服務(wù)器用來對用戶登錄鏈接進行監(jiān)聽的線程類。其代碼如下: class watch extends Thread{ ?? watch(Frame1 frame) { ?? } public void run(){ while (true) { if (() 20) { try { socket = ()。 ?? Client c = new Client(frame, socket)。 //定義并實例化一個 Client線程,每一個線程對應(yīng)一個客戶連接 (c)。 //加入到 Clients數(shù)組中 if ((c)) { int num = + 1。 ++。 (目前已經(jīng)有 : + num + 用戶連接 )。 Client listdata = (Client) (num 1)。 ( + + + 已經(jīng)連接 , num 1)。 ()。 //啟動線程 ()。 //監(jiān)視白板窗口的連接變化 } else { (FAULTNAME)。 //檢查名字不合法 ,則在發(fā)送流中發(fā)送FAULTNAME (c)。 //斷開連接 } } else { try { 第 17 頁 共 32 頁 (400)。 } } ( 4) Client 類,這個類是服務(wù)器用來對用戶發(fā)送信息的接收分析和轉(zhuǎn)發(fā)的類。這個類有還對用戶 名稱的判斷和對用戶列表的更新功能。 服務(wù)器對用戶發(fā)送信息的接收
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1