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

正文內容

局域網(wǎng)聊天程序的實現(xiàn)—計算機畢業(yè)設計(編輯修改稿)

2025-01-04 10:57 本頁面
 

【文章內容簡介】 斷 開 連 接登 錄 界 面有 新 用 戶 上 線刷 新 用 戶 列 表退 出 程 序成 功失 敗提 示 用 戶 進 行注 冊注 冊 圖 5 客戶端系統(tǒng)流程圖 服務器端設計 服務器端分為監(jiān)聽控制、系統(tǒng)信息欄、及時狀態(tài)顯示和用戶列表幾個詳細模塊。 服務器運行時要能對監(jiān)聽狀態(tài)進行控制,可以在不退出程序的情況下關閉服務器。服務器設計一個系統(tǒng)信息欄,記錄服務器的各種狀態(tài)變化和用戶的登錄、注冊、下線、客戶端的連接等信息,方便管理員進行管理。服務器同樣設計一個可以動態(tài)刷新的在線用戶列表,管理員可以看到當前的用戶在線情況。 具體流程圖如圖 6 所示: 開 始處 于 監(jiān) 聽 狀 態(tài)檢 測 到 客 戶 端連 接 到 服 務 器關 閉 服 務 器退 出 程 序在 線 用 戶 列 表 刷 新 ,系 統(tǒng) 信 息 欄 顯 示 系 統(tǒng) 信 息登 錄成 功提 示 用 戶 重 新 登 錄失 敗 圖 6 服務器端系統(tǒng)流程圖 聊天中公聊和私聊的設計 聊天時可以向 在線用戶中其中一個發(fā)送消息也可以向所有在線用戶發(fā)送消息。每個在線用戶都和服務器建立了一個獨立的連接,如果其中一個用戶 A 向用戶 B 發(fā)送消息 a,工作原理是:用戶先把消息 a 發(fā)給服務器,服務器在把此消息發(fā)給用戶 B;如果用戶 A 向所有在線用戶發(fā)送消息 b,工作原理是:用戶先把消息 b 發(fā)給服務器,服務器再把此消息發(fā)給所有在線用戶。如圖 7 所示: 服 務 器在 線 用 戶 B在 線 用 戶 A 在 線 用 戶 C在 線 用 戶 D消 息 a ( 私 聊 )消 息 b ( 公 聊 )消 息 b消息a消息b消息b 圖 7 公聊私聊的處理 界面設計 客戶端界面設計 通過初步規(guī)劃,客戶端的界面應該包括以下內容: IP 輸入欄、用戶登錄欄、用戶注冊欄、用戶列表欄、聊天記錄顯示欄、聊天信息輸入欄和關于對話框。 總體思想是上下,下 分兩欄,使用框架做布局,此方法可以使整個系統(tǒng)更加符合信息空間的信息存儲,運行速度更快,信息層次更加清晰,用戶操作則更方便,更有條理。 整體界面的設計 的下欄為聊天區(qū),下欄右邊為用戶列表,左邊為聊天記錄和登錄信息的顯示欄,下方為聊天記錄輸入框,注冊和關于為彈出對 話框。示意圖如圖 圖 圖 10: 圖 8 客戶端界面設計 圖 9 注冊欄設計 圖 10 關于對話框設計 服務器界面設計 客戶端的界面應該包括以下內容:服務器監(jiān)聽狀態(tài)控制欄、在線用戶列表欄、系統(tǒng)信息欄和關于對話框,如圖 11 所示: 局 域 網(wǎng) 聊 天 程 序 服 務 器幫 助 信 息用 戶 列 表服 務 器 監(jiān) 聽 狀 態(tài) 控 制 欄用 戶 注 冊 欄 圖 11 服務器功能圖 整體界面的設計 同樣為上下分開布局,下欄為服務器監(jiān)聽狀態(tài)控制欄, 通過點擊 右邊用戶列表欄的用戶來完成用戶的選擇。上欄為用戶列表和系統(tǒng)信息欄,注冊為彈出對話框,同客戶端一樣,示意圖略。示意 圖如圖 12: 圖 12 服務器界面設計 4 系統(tǒng)實現(xiàn)及核心代碼 網(wǎng)絡通信核心代碼 begin if not then begin :=true。 //如果 serversocket 沒有激活則激活它 (39。服務器連接! [39。+Datetimetostr(now)+39。]39。)。 //狀態(tài)欄顯示服務器當前時間狀態(tài) end else showmessage(39。已經 在監(jiān)聽狀態(tài) 39。)。 end。 //點擊監(jiān)聽按鈕時服務器開始監(jiān)聽請求 begin clientip:= end。 //客戶端的 IP 地址 procedure (Sender: TObject。Socket: TCustomWinSocket)。 begin :=39。監(jiān)聽狀態(tài) ...39。 counter:=0。 end。 //服務器處于監(jiān)聽狀態(tài)時狀態(tài)欄顯示“監(jiān) 聽狀態(tài) … ” begin tmptext := 。 if pos(39。%amp。%amp。%amp。39。,tmptext)0 then // 當服務器收到的 text 中有 39。%amp。%amp。%amp。39。字符串時表示私聊 begin tmptext := copy(tmptext,1,length(tmptext)6)。 signpos:= pos(39。amp。amp。39。,tmptext)。 chattext:= copy(tmptext,1,signpos1)。 member:=copy(tmptext, signpos+2,pos(39。$$39。,tmptext)2signpos)。 usename:=copy(tmptext,pos(39。$$39。,tmptext)+2,length(tmptext)pos(39。$$39。,tmptext)+2)。 //從 text 中分別提取聊天信息,發(fā)送人,接收人等相關信息 for i:=0 to counter1 do begin if member=chatname[i] then begin [i].SendText(usename+39。對你說: 39。+chattext)。 break。 //發(fā)送聊天信息給接收人 end。 end。 end else // 當無任何標記時表示公聊 begin for i:=0 to counter1 do [i].SendText(tmptext)。 //對所有人發(fā)送信息 end。 end。 以上是聊天部分的代碼,服務器通過特殊的字符串來區(qū)分公聊和私聊,當有39。%amp。%amp。%amp。39。字符串時表示私聊;當無任何標記時表示公聊。 用戶注冊登錄下線模塊功能代碼 if pos(39。$%$%$%39。,tmptext)0 then // 當有 39。$%$%$%39。表示有登陸信息 begin tmptext := copy(tmptext,1,length(tmptext)6)。 chatname[counter]:=tmptext。 (tmptext)。 //用戶列表添加新登錄的用戶 check :=((39。usename39。,tmptext,39。password39。))。 (check+39。@$%^amp。39。)。 (39。用戶 [39。+tmptext+39。]上線了。 39。)。 if counter0 then begin for i:=0 to counter1 do begin [counter].SendText (chatname[i]+39。~{}()amp。*%^39。)。 [i].SendText(tmptext+39。~{}()amp。*%^39。)。 sleep(300)。 end。 end。 inc(counter)。 end else if pos(39。??**39。,tmptext)0 then //當有 39。??**39。字符串表示注冊信息 begin signpos:=pos(39。??**39。,tmptext)。 member:=copy(tmptext,1,signpos1)。 chattext:=copy(tmptext,signpos+6,length(tmptext)6length(member))。 with table1 do begin if (39。usename39。).AsString=member then (39。用戶名已經有人用了,請檢查后重新注冊。 39。) else //注冊時進行用戶名驗證 begin insertrecord([member,chattext])。 (39。新用戶: [39。+member+39。]注冊成功! 39。)。 (39。注冊成功,請先登陸再進行聊天! 39。)。 end。 //注冊成功后提示 end。 end else if pos(39。*^amp。%^)@39。,tmptext)0 then // 當有 39。*^amp。%^)@39。字符串表示有人下線了 begin tmptext:=copy(tmptext,1,length(tmptext)8)。 (39。用戶 [39。+tmptext+39。]下線了。 39。)。 for i:=0 to counter1 do [i].SendText(tmptext+39。^$%^$39。)。 for i:= downto 1 do if [i1]=tmptext then begin (i1)。 //從用戶列表中去除下線的用戶 dec(counter)。 end。 end 客戶端與服務器進行通信時同樣是通過附加不同的特殊字符串來讓服務器區(qū)分登錄、注冊、下線等信息, 當有 39。*^amp。%^)@39。字符串表示有人下線了 ,(i1)。表示從用戶列表中刪除下線的用戶 ; 當有 39。??**39。字符串表示注冊信息 ; 當有 39。$%$%$%39。表示有登陸信息 。 5 系統(tǒng) 測試 測試方法 ( 1) 運行服務器,看能否對服務器的監(jiān)聽狀態(tài)進行管理,開關服務器看系統(tǒng)信息欄有沒有相關記錄。 ( 2) 運行客戶端,輸入服務器的 ip 地址 ,測試 看能否 連接到服務器。 ( 3)客戶端連接到服務器后, 進行注冊,注冊成功后看能否 成功登錄,登錄后看聊天模塊是否 激活。 ( 4) 注冊若干個用戶進行登錄,看 服務器和客戶端的 在線戶列表是否刷新 和同步。 ( 5)看能否進行聊天,公聊和私聊能否正常進行。 ( 6)看服務器的系統(tǒng)信息欄是否記錄了客戶端的連接,用戶的注冊、登錄、下線等信息。 測試結果 ( 1)服務器能夠正常運行,能夠對服務器的監(jiān)聽狀態(tài)進行管理,并且系統(tǒng)信息欄有相關記錄。 ( 2)客戶端能夠連接到服務器,并能夠進行注冊和登錄 ( 3)在有新用戶登錄時,用戶列表動態(tài)刷新 ( 4)聊天功能可以正常進行 ( 5)服務器系統(tǒng)信息欄記錄了用戶的注冊、登錄、下線等相關信息 測試結論 以上的測試案例是單獨進行測試的,還需要進一步的交叉案例測試。通過以上簡單測試說明了 設計方法的正確性,它已經初步具備了 局域網(wǎng)聊天程序 的基本框架,具有良好的檢測性能和準確的檢測結果。 但 系統(tǒng)構架和代碼設計還需要進一步優(yōu)化,以提高系統(tǒng)的運行效率,降低所耗的系統(tǒng)資源,為用戶提供更好的服務。 程序運行截圖 圖 13 服務器運行界面 圖 14 客戶端運行界面 結 論 經過了 3 個月的忙碌, 局域 網(wǎng)聊天程序基本開發(fā)完畢 。 其功能基本符合用戶需求。 從解決不了細小問題的苦惱到問題最終解決的喜悅,一直伴隨著整個設計過程。整個設計過程是不斷學習,不斷發(fā)現(xiàn)問題、分析問題、解決問題的過程。使我受益良多。設計期間有許多的感觸、想法、經驗,教訓,對以后的學習、工作有很大的益處。 另外,在使用參考書籍的過程中,有很多的精湛的細節(jié)值得認真學習 和領悟 。 本設計在查 閱了大量的文獻后進行理論研究的同時,借鑒了其他聊天程序 的優(yōu)缺點,在此基礎上展開了研究工作,歸納起來,論文取得的成果和創(chuàng)新點主要有以下幾個方面: ? 通過網(wǎng)絡編程,設計了 基本的聊天功能和登錄注冊功能。 ? 對典型的 C/S 結構有了基本了解。 ? 將數(shù)據(jù)庫和網(wǎng)絡編程相結合,利用 這一軟件進行編程,將在大學里學到的知識進行了很好的綜合。 ? 利用 TCP/IP 協(xié)議中的 TCP 協(xié)議,即面向連接的服務,進行數(shù)據(jù)的傳輸,對網(wǎng)絡中數(shù)據(jù)的傳輸過程 進行了認真的分析 。 至 此,一個基于 TCP/IP 協(xié)議的 局域網(wǎng) 聊天室就完成了。在局域網(wǎng)內運行該程序并進行設置,即可
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1