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

正文內(nèi)容

畢業(yè)設(shè)計-基于java的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分最終版(編輯修改稿)

2025-07-12 15:21 本頁面
 

【文章內(nèi)容簡介】 。執(zhí)行完后回到流程 1。第二種是登錄請求,繼續(xù)接受客戶端發(fā)來的用戶名和密碼,查詢數(shù)據(jù)庫看是否有相同記錄,沒有則返回一個失敗信息給客戶端,然后回到流程 1。若是用戶名和密碼都正確,則返回成功信息給客戶端。 3. 服務(wù)器將客戶的 ID、用戶名、地址存 到一個空的 client,然后啟動該用戶的數(shù)據(jù)接受發(fā)送線程。然后返回流程 1。 4. Client 線程啟動后一直循環(huán)接受信息,直到收到該客戶端發(fā)來消息。根據(jù)消息的標識符判斷是群發(fā)還是一對一單聊,群發(fā)則所有的 client 線程將消息發(fā)回客戶端。如果是一對一單聊,則查找 client 數(shù)組的用戶名,找到相應(yīng)的客戶,使用該用戶的對應(yīng)線程發(fā)回該信息。 如上服務(wù)器還有一些其他操作,如,更新在線用戶列表、發(fā)送在線用戶列表給客戶端,查看數(shù)據(jù)庫資料,對數(shù)據(jù)庫資料進行插入、修改、刪除等、還有聊天記錄的保存打開等。(為了安全起見,這里的聊天記 錄都是用戶用自己私鑰加密過的,服務(wù)器沒法解密,但是可以為用戶發(fā)生爭端或者需要時提供記錄,讓用戶自己解密驗證) 客戶端工作流程 客戶端程序相對與服務(wù)器來說要簡單一些: (圖 客戶端主要界面功能圖 ) 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 15 (圖 客戶端接受消息線程主要功能圖 ) 1. 顯示登錄界面,這里可以選擇注冊用戶,用戶登錄,修改服務(wù)器 ip 以及端口等(默認是本機 ip,端口是 6868)。選擇注冊進入流程 2,選擇登錄進入流程 3 2. 顯示注冊界面,這里要輸入用戶名,密碼, 等,對用戶名的要求有不為空以及不含畢設(shè)字樣即可。 2 次密碼需 要一致。點擊發(fā)送將信息發(fā)給服務(wù)器,接受服務(wù)器返回信息,成功失敗均有相應(yīng)的對話框彈出。 3. 發(fā)送登錄用戶名和密碼,接受服務(wù)器發(fā)回信息,成功進入流程 4,失敗則返回流程 1。 4. 關(guān)閉打開界面,顯示對話界面,同時啟動一個專門接受服務(wù)器信息的線程。這里可以發(fā)送群聊消息,以及顯示你接受的消息。雙擊在線用戶列表的某一用戶,彈出相應(yīng)的單聊窗口,可以進行一對一聊天。 客戶端同樣有自動更新在線用戶,保存聊天記錄等功能。 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 16 第三章 系統(tǒng)設(shè)計與實現(xiàn) 開發(fā)環(huán)境與工具 基于 JAVA 聊天系統(tǒng)的設(shè)計主要運 用 JAVA 與語言與 Socket 類結(jié)合而開發(fā)。其開發(fā)的主要環(huán)境包括: 服務(wù)器端:( Windows 平臺)首先應(yīng)有 java 環(huán)境 jdk,建議采用 以上,另外還需配置 classpath 環(huán)境變量 ,需要有一個 access 的數(shù)據(jù)庫,配置好 odbc 的數(shù)據(jù)源。數(shù)據(jù)源命名為 kangxi。 access 數(shù)據(jù)庫里建立一個 user 表用來存儲用戶賬號信息。User 表有 7 列,均為文本類型,分別是 name, password, , ans,創(chuàng)建登錄時間,最后登錄時間,賬號狀態(tài)。 客戶端:只要有 java 環(huán)境 jdk 就可以 ,建議 。 硬件環(huán)境 本系統(tǒng)運行環(huán)境所需用到的環(huán)境為 : 硬件配置 : 中央處理器( CPU) : P4 ; 硬 盤: 40GB以上硬盤; 內(nèi) 存: 512 DDR內(nèi)存; 顯示器: 15寸顯示器等; 顯 卡: 128M顯存顯卡 軟件環(huán)境: WINDOWS XP、 ACCESS數(shù)據(jù)庫、 。 各個功能模塊的具體實現(xiàn) 服務(wù)器的具體實現(xiàn) 1. 用戶注冊、登錄、密碼找回 服務(wù)器監(jiān)聽端口,接收到客戶端請求后,接受類別信息。 String str = ()。chuli(str, dos)。 調(diào)用 chuli(String str, DataOutputStream dos)方法處理消息 String tname = (0, (畢設(shè) ))。 String message4 = ((畢設(shè) ) + 2)。 這里的 tname 有 3 種值:第一種表示用戶發(fā)出注冊請求, message4 則為具體的所有注冊消息,服務(wù)器收到都連接服務(wù)器,查詢是否已有 該用戶名的賬號,沒有則將message4 的值根據(jù)標識符分段,然后插入數(shù)據(jù)庫,返回成功信息,反之亦然;第二種表示用戶發(fā)出密碼找回請求, message4 為用戶輸入的密碼找回答案,服務(wù)器連接 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 17 數(shù)據(jù)庫,查詢是否存在該用戶名和答案匹配的記錄,成功則將密碼發(fā)回給用戶,反之則發(fā)揮失敗消息。 (ok!+畢設(shè) +(1))。這里的 rs為查詢數(shù)據(jù)庫的返回結(jié)果;第三種用戶登錄請求, message4 為用戶密碼,服務(wù)器收到后連接數(shù)據(jù)庫,判斷用戶信息是否正確,將結(jié)果返回給客戶端,當結(jié)果為 成功時服務(wù)器繼續(xù)向下運行,失敗則回到監(jiān)聽端口的地方。 2. 客戶端線程的存儲 服務(wù)器為了能有效的處理各個用戶的請求,創(chuàng)建了一個客戶線程數(shù)組 public static Client user[] = new Client[200]。 然后根據(jù) Client 的定義用連接服務(wù)器端口的客戶端的編號、用戶名、輸入流、輸出流創(chuàng)建對象,啟動線程,最后返回繼續(xù)監(jiān)聽端口。 user[sum] = new Client(sum, , dos, din)。 創(chuàng)建與客戶對應(yīng)的通信線程 new Thread(user[sum]).start()。 啟動發(fā)送數(shù)據(jù)到客戶端線程 3. 服務(wù)器中各個客戶端通信線程 首先當客戶線程啟動時調(diào)用刷新在線用戶的方法: ()。當服務(wù)器中接受客戶端消息線程收到消息后,先進行預(yù)處理 String tname = (0, (標識符 ))。 String message = ((標識符 ) + 3)。 將消息的對象和消息的具體內(nèi)容提取出來,然后根據(jù)對象的值來判 斷客戶端的請求種類。 if ((exit)) 當 tname 值為 exit 時,表示客戶端下線了。此時服務(wù)器就要將 play[]中該客戶端的用戶名刪去,同時調(diào)用刷新在線用戶列表的方法 rid()。 if ((all)), 當 tname 值為 all時,表示這條消息是發(fā)給所有人的,服務(wù)器于是調(diào)用所有的在線用戶線程,將消息發(fā)給去。 for (int i = 0。 i m。 i++){ mess = + 對所有人說 \n + message。 [i].(mess)。} 這里的 是發(fā)出消息人的名字。當 tname 的值不為 exit 和 all 時,表示這條消息是私聊的消息,而且 tname 是接受客戶端的用戶名。此時要先找到接受用戶端的線程,然后才發(fā)回消息。 for (int i = 0。 i m。 i++) {if (([i].name)) { [i].( + 設(shè)畢 + mess)。}} 當線程從接到消息后經(jīng)過這 3步就完成了對這條消息的處理,然后循環(huán)回去繼續(xù)等待接受此用戶的消息。 String str = new String(())。 4. 在線用戶列表刷新 創(chuàng)建一個 String 數(shù)組要來存放此時在線的用戶列表 public static String play[] = new String[200]。 當有用戶上線或者下線時就對 play[]進行操作,接著將界面中的用戶表清空,然后把 play[]中的所有 值插入到表中,同時調(diào)用所有的在線用戶通信線程把更新的 play[] 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 18 加上標識符發(fā)送出去,客戶端收到后根據(jù)標識符判斷為列表更新消息,也清空列表然后插入新的 play[]值。 5. 聊天信息的保存以及打開 點擊界面的保存記錄按鈕,調(diào)用保存記錄方法。 File a1=new File()。 if(!()){ ()。 }\\當沒有 文件時創(chuàng)建文件 將顯示區(qū)域的消息存以追加的方式寫入到服務(wù)器目錄下的 文件,然后清空消息顯示區(qū)域的文字 。 點擊菜單欄的打開記錄選項,彈出一個對話框,打開服務(wù)器目錄下的 文件,將內(nèi)容顯示在對話框,當無文件時顯示為空。 6. 數(shù)據(jù)庫的連接 首先在數(shù)據(jù)庫創(chuàng)建表,然后在控制面板的管理工具 數(shù)據(jù)源 里面添加數(shù)據(jù)源。在程序需要連接數(shù)據(jù)庫時 ()。 con = (jdbc:odbc:kangxi, , )。 這是連接數(shù)據(jù)庫的驅(qū)動以及連接數(shù)據(jù)源的用戶名和 密碼。 String sqlstring = SELECT * FROM user 。 ps = (sqlstring)。 rs = ()。 這里的 sqlstring 用來存儲數(shù)據(jù)庫語言,然后 SQL 語句對數(shù)據(jù)庫查詢操作將返回一個ResultSet 對象。如果是插入以及更新數(shù)據(jù)庫則不需要返回值,只需要更新數(shù)據(jù)庫即可。 rs = ()。 這里即表示對數(shù)據(jù)庫的操 作進行更新。 7. 對用戶賬號的基本操作 點擊菜單欄的用戶資料管理選項,彈出賬號處理窗口,服務(wù)器連接數(shù)據(jù)庫,然后將所有的用戶信息顯示到窗口的中間 String sqlstring = SELECT * FROM user。 PreparedStatement ps = (sqlstring)。 rs = ()。rs 即為所有用戶信息 在窗口菜單欄可以選擇具體的操作,如新建賬號、刪除賬號、查找賬號、修改賬號、退出管理等。關(guān)閉時斷開與數(shù)據(jù)庫的連接。 客戶端的具體實現(xiàn) 1. 連接服務(wù)器的設(shè)置 點擊設(shè)置,可以設(shè)置連接服務(wù)器的 ip 地址和端口,只有知道了服務(wù)器的 ip 以及開放端口才能正確連接服務(wù)器。 2. 用戶賬號注冊 點擊注冊,彈出注冊窗口,填寫用戶的基本信息,這里要求用戶名不準為空,并且不能含標識符,因為程序很多地方需要用標識符來分段信息。密碼 2 詞輸入要一致,密碼找回答案不為空。 當輸入完后,點注冊,客戶端將信息發(fā)送給服務(wù)器 str=na1+標識符 1+na2+標識符 2+na3+標識符 3+na4。 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 19 mess=標 識符 4+標識符 0+str。 (mess)。 na1na4 為用戶信息,標識符 0標識符 3 起分隔作用,標識符 4 表示這條消息是注冊消息。然后接受服務(wù)器返回的結(jié)果,彈出相應(yīng)的對話窗提示用戶結(jié)果。 3. 密碼找回功能 點擊密碼找回,彈出密碼找回窗口,輸入賬號以及密碼找回問題的答案,將信息用標識符組合發(fā)給服務(wù)器,然后接受服務(wù)器的返回信息,返回標識符為 ok 則填出窗口顯示用戶名以及密碼,失敗則提示輸入信息不正確。 4. 登錄賬號 輸入用戶名和密碼后點登陸,將信息發(fā)給服務(wù)器,接受服務(wù)器返回結(jié)果, ok 則關(guān)閉當前窗口打開對話窗口,失敗則提示用戶名密碼不正確。 5. 客戶端接受信息線程 當客戶端登錄后,創(chuàng)建一個專門負責處理服務(wù)器發(fā)來消息的線程,循環(huán)接受消息。 這里接收到的消息根據(jù)分隔符有 3種:第一種分隔符表示這條消息是刷新在線用戶列表的,則清空用戶列表,然后將信息分段截取后的結(jié)果插入列表;第二種分隔符表示消息是群聊消息,則在消息顯示文本區(qū)域顯示。 (str+\n\n)。 (().length())。\\這里的作用是滾屏 displayarea 是文本區(qū)域;第三種分隔符是表示這是一對一單聊的消息,將消息根據(jù)分隔符截取,得到消息的發(fā)送人,查找是否已經(jīng)有與該用戶私聊的對話框,沒有則彈出與該用戶私聊的對話框,并顯示本條消息。如果已經(jīng)有與該用戶私聊的對話框,則追加顯示本條信息。 6. 與在線用戶私聊 雙擊在線用戶列表中的用戶名,彈出與該用戶私聊的對話窗口,在此次上線過程中這個對話窗口都將負責與該用戶的私聊,即使關(guān)閉了,該對話框也只是隱藏起來。 7. 聊天記錄的保存 點 擊界面的保存記錄按鈕,調(diào)用保存記錄方法。 File a1=new File(fname+.txt)。 if(!()){ ()。 } 將顯示區(qū)域的消息存以追加的方式寫入到客戶端目錄下的以登錄用戶名命名的文件,然后清空消息顯示區(qū)域的文字。點擊菜單欄的打開記錄選項,彈出一個對話框,打開客戶端目錄下以登錄用戶名命名的文件,將內(nèi)容顯示在對話框,當無文件時顯示為空。 組員的加密實現(xiàn) 同組的另一位同學(xué)將在我完成的模塊基礎(chǔ)上加入安全加密,大概功能有: 當用 戶注冊時自動生成用戶的 RSA 公私密鑰,保存在用戶端,將公鑰發(fā)給服務(wù)器;每當用戶發(fā)信息時想用 des 加密消息,再用私鑰加密對稱密鑰。達到對消息簽名的目的;服務(wù)器只能看到群聊的消息,而私聊的消息顯示的是加密過后的亂碼,這是為了保護用戶的隱私,同時當用戶需要聊天記錄時可以發(fā)回給用戶解密驗證。 基于 java 的網(wǎng)絡(luò)安全聊天工具:網(wǎng)絡(luò)功能部分 20 功能模塊的測試 本次畢設(shè)的編譯環(huán)境,及編寫平臺為 java。主要用到的類為 包中的
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1