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

正文內(nèi)容

局域網(wǎng)聊天軟件聊天軟件論文畢業(yè)設(shè)計論文)word格式(編輯修改稿)

2024-09-03 15:07 本頁面
 

【文章內(nèi)容簡介】 和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu)。C/S結(jié)構(gòu)軟件分為客戶機和服務(wù)器兩層,客戶機不是毫無運算能力的輸入、輸出設(shè)備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲能力,通過把應(yīng)用軟件的計算和數(shù)據(jù)合理地分配在客戶機和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運算量。由于服務(wù)器連接個數(shù)和數(shù)據(jù)通信量的限制,這種結(jié)構(gòu)的軟件適于在用戶數(shù)目不多的局域網(wǎng)內(nèi)使用。C/S結(jié)構(gòu)的優(yōu)點是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度快。缺點主要有以下幾個:只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動辦公和分布式辦公越來越普及,這需要我們的系統(tǒng)具有擴展性。這種方式遠程訪問需要專門的技術(shù),同時要對系統(tǒng)進行專門的設(shè)計來處理分布式的數(shù)據(jù)。第3章 系統(tǒng)分析與設(shè)計 系統(tǒng)分析 系統(tǒng)需求聊天交流是目前互聯(lián)網(wǎng)提供的主要內(nèi)容。聊天系統(tǒng)有多種實現(xiàn)方式,類似ICQ屬于一種點對點的聊天系統(tǒng);還有一種是基于Socket的集中式聊天系統(tǒng),這種聊天系統(tǒng)需要登陸統(tǒng)一的聊天服務(wù)器。在基于Socket的聊天系統(tǒng)中,主要有兩種角色:服務(wù)器和客戶端,不同的客戶端登陸集中式的服務(wù)器,通過服務(wù)器將一個客戶端發(fā)出的信息推送到其他所有客戶端。基于Socket的聊天系統(tǒng)最早實現(xiàn)是使用網(wǎng)頁刷新方式,通過客戶端不斷地自動刷新,將服務(wù)器端整個頁面內(nèi)容下載到客戶端顯示,這種方式的聊天速度慢,而且有刷屏現(xiàn)象,很快被更新的聊天技術(shù)所替代。 聊天系統(tǒng)在客戶端和服務(wù)器之間主要傳送的是文字信息,服務(wù)器端只需要把最近的文字信息推送到客戶端,這樣減少了網(wǎng)絡(luò)傳輸內(nèi)容,節(jié)省了網(wǎng)絡(luò)傳輸?shù)臅r間,無疑提高了聊天速度。這種“推”技術(shù)是目前基于Socket聊天系統(tǒng)的主要實現(xiàn)技術(shù)。在基于Socket的聊天系統(tǒng),客戶端和服務(wù)器必須保持隨時隨地的連接。這有別于普通Web瀏覽的連接方式。在使用瀏覽器訪問服務(wù)器時,先由客戶端發(fā)出HTTP協(xié)議,然后服務(wù)器響應(yīng)處理這個客戶端的響應(yīng),再返回處理結(jié)果;請求(Request)和響應(yīng)(Response)是一種一對一的前后因果關(guān)系。而在基于Socket的聊天系統(tǒng)中,客戶端發(fā)出聊天信息的同時,客戶端也在接受服務(wù)器發(fā)送過來的其他人的聊天信息,因此,請求和響應(yīng)不存在那種前后對應(yīng)關(guān)系,是兩種分別獨立進行的進程。因為服務(wù)器任何時候都可能發(fā)送信息到客戶端,因此,客戶端和服務(wù)器一旦建立連接,必須能讓服務(wù)器在以后發(fā)送中尋找定位到這個連接。局域網(wǎng)聊天系統(tǒng)使該系統(tǒng)的用戶能夠通過客戶端登入到該系統(tǒng),然后直接與系統(tǒng)交互。首先,需啟動服務(wù)器,進行服務(wù)器的配置,進行正確的服務(wù)器配置和數(shù)據(jù)庫連接并測試成功后,開啟服務(wù)器。接下來,在客戶端,該系統(tǒng)的用戶能夠通過登陸界面進入,然后直接與系統(tǒng)交互,進行文字傳送。本系統(tǒng)支持的活動列表如下:(1) 配置服務(wù)器,連接數(shù)據(jù)庫;(2) 開啟服務(wù)器;(3) 用戶注冊一個八位數(shù)的賬號;(4) 用戶登陸系統(tǒng);(5) 用戶可修改密碼;(6) 用戶與系統(tǒng)交互,進行文字傳送;(7) 用戶好友登陸后,自動彈出系統(tǒng)消息,提示有好友上線;(8) 用戶登陸后,可查找,添加和刪除好友;(9) 用戶可以下載好友分組,刷新在線資料;(10) 傳送文字、用戶上線時有提示音; 需求分析A、識別參與者通過對系統(tǒng)需求的分析,可以確定系統(tǒng)中有兩個參與者:普通用戶和管理員。參與者的描述如下:(1)普通用戶描述:普通用戶可以注冊號碼,登陸聊天系統(tǒng),添加好友,文字傳送,上線提示。示例:注冊的普通用戶。(2)管理員描述:管理員除了有普通用戶所有權(quán)限外,還具有其它權(quán)限:配置服務(wù)器,開啟服務(wù)。B、識別用例經(jīng)過識別參與者后,對系統(tǒng)需求進一步分析,可以確定系統(tǒng)中有如下用例:(1)Registe(注冊)本用例提供了普通用戶注冊的功能。(2)Login(登陸)本用例提供已注冊的普通用戶和管理員登陸系統(tǒng)的功能。(3)Addfriends(添加好友)本用例提供了普通用戶添加好友功能。(4)online(上線提示)本用例為普通用戶和管理員提供好友上線提示的功能。(5)startserver(開啟服務(wù))本用例為管理員提供了開啟服務(wù)的功能。(6)configserver(配置服務(wù)器)本用例為管理員提供了配置服務(wù)器的功能。識別出系統(tǒng)的參與者和用例后。31系統(tǒng)用例圖 系統(tǒng)設(shè)計 設(shè)計原則考慮到系統(tǒng)的可重用性和伸縮性,需要將本系統(tǒng)的網(wǎng)絡(luò)通信底層和應(yīng)用系統(tǒng)分離開。這樣,基于可重用的網(wǎng)絡(luò)通信層,可以實現(xiàn)其他各種實時性較高的應(yīng)用系統(tǒng)。本系統(tǒng)在架構(gòu)設(shè)計上將分3個層次,如圖32所示。Socket底層接口層聊天、游戲等應(yīng)用系統(tǒng)圖32架構(gòu)層次圖本系統(tǒng)最底層是Socket通信層,將負責客戶端和服務(wù)器之間快速的數(shù)據(jù)交換,它通過接口層和最上面應(yīng)用層保持實時數(shù)據(jù)聯(lián)系。用戶從客戶端進入到本系統(tǒng)前,將實現(xiàn)統(tǒng)一的用戶登錄驗證機制。Socket底層設(shè)計分兩大部分:協(xié)議設(shè)計和連接處理設(shè)計:協(xié)議設(shè)計和連接處理設(shè)計;接口層的目的是提供底層和應(yīng)用蹭一個中介媒體的作用,但是不能設(shè)計得太復(fù)雜,以免延誤數(shù)據(jù)傳送時間。 架構(gòu)設(shè)計在本系統(tǒng)中,客戶端需要將用戶輸入的聊天信息發(fā)往服務(wù)器,那么建立一個線程一直實現(xiàn)發(fā)送功能,由于客戶端監(jiān)視用戶輸入也有一個監(jiān)視線程在運行。這樣,有兩個線程各司其職。一個負責監(jiān)視輸入,另外一個線程負責將輸入發(fā)送出去。那么再這兩個線程之間如何通信?最經(jīng)常使用的辦法是使用隊列(Queue)模式。Queue模式是處理消息通信的基本辦法,如圖33所示。提取加入隊列Queue圖33 隊列Queue模式本系統(tǒng)中應(yīng)用Queue模式有一個問題,加入動作是由用戶輸入決定的,一旦有用戶輸入,就會發(fā)生假如動作,那么,提取線程會在隊列另外一段進入死循環(huán)不斷的讀取,這樣才能在隊列中一旦有對象事件時,能夠被立即提取出來,因此必須使用while(!Thread. interrupted())實現(xiàn)死循環(huán)。但是必須注意到,每次循環(huán)中的提取動作執(zhí)行是有前提條件的——隊列中有對象事件。如果在有對象事件時,通知提取線程,這樣可以避免提取線程一直霸占CPU“傻等”,(objectobj)(object obj)可以達到這個目的。(objectobj)進行中斷等待,加入對象后,(object obj),這樣提取線程將中斷等待,從Queue中讀取假如對象。線程再中斷等待時,將釋放CPU的霸占,這樣就有效率地利用了CPU,如圖34所示。提取隊列Queuewait加入 圖34 改進后的隊列Queue模式由此可見,并不是說使用了多線程就能提高系統(tǒng)性能,更重要的是還要注意提高CPU使用效率,防止Block發(fā)生。提高多線程的使用效率還必須了解下列幾點:(1)線程運行的次序并不是按照創(chuàng)建他們時的順序來運行的,CPU處理線程的順序是不確定的,如果需要確定,那么必須手工介入。(2)要避免大量線程運行時發(fā)生堵塞現(xiàn)象,可以通過設(shè)置線程優(yōu)先級來實現(xiàn),但是同時又必須注意到,再大量線程被堵塞時,最高優(yōu)先級的線程先運行,但不表示低級別線程不會運行,只是運行概率較小而已。(3)檢查所有可能Block的地方,盡可能多的使用sleep;盡可能延長sleep(毫秒數(shù))的時間。但是,當多線程數(shù)量很多時,每次啟動線程的開銷也非常大,有時創(chuàng)建新線程的服務(wù)器再創(chuàng)建和銷毀線程上花費的時間和消耗的資源,可能要比花再處理應(yīng)用邏輯運算的時間和資源要多得多。除了創(chuàng)建和銷毀線程的開銷之外,活動的線程也會消耗系統(tǒng)資源。當應(yīng)用系統(tǒng)突然遭遇巨大訪問量訪問時,服務(wù)器內(nèi)存中會創(chuàng)建太多的線程,直至資源完全消耗,這對于應(yīng)用系統(tǒng)的正常運行是有致命傷害的。為了能再訪問劍鋒時限制線程開啟數(shù)目,以及減少線程頻繁創(chuàng)建和銷毀帶來的系統(tǒng)開銷,提高系統(tǒng)的大量訪問量處理性能和速度,需要事先創(chuàng)建一定數(shù)量的線程供調(diào)用者循環(huán)反復(fù)使用,這也就是“池”技術(shù)。線程池的基本原理也是基于隊列Queue事先,通過不斷查詢隊列Queue是否有可以運行的線程。如果有,就立即運行線程;如果沒有,就鎖定等待,直至有新的線程假如被出發(fā)解鎖。C。使用ThreadPool和事件驅(qū)動
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1