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

正文內(nèi)容

基于socket的網(wǎng)絡(luò)聊天系統(tǒng)-資料下載頁

2025-05-07 20:30本頁面
  

【正文】 戶一個賬號進(jìn)入系統(tǒng)。 B/S(瀏覽器 /服務(wù)器模式 )是隨著 Inter 技術(shù)的興起,對 C/S 結(jié)構(gòu)的一種改進(jìn)。在這種結(jié)構(gòu)下,軟件應(yīng)用的業(yè)務(wù)邏輯完全在應(yīng)用服務(wù)器端實現(xiàn),用戶表現(xiàn)完全在 Web 服務(wù)器實現(xiàn),客戶端只需要瀏覽器即可進(jìn)行業(yè)務(wù)處理 。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。 W E B 服 務(wù) 器數(shù) 據(jù) 庫 服 務(wù) 器客 戶 端 客 戶 端 客 戶 端 客 戶 端 圖 35 B/S 系統(tǒng)結(jié)構(gòu)圖 2. C/S 結(jié)構(gòu)軟件(即客戶機(jī) /服務(wù)器模式) 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 18 分為客戶機(jī)和服務(wù)器兩層,客戶機(jī)不是毫無運算能力的輸入、輸出設(shè)備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲能力,通過把應(yīng)用軟件的計算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運算量。由于服務(wù)器連接個數(shù)和數(shù)據(jù)通信量的限制,這種結(jié)構(gòu)的軟件適于在用戶數(shù)目不多的局 域網(wǎng)內(nèi)使用。國內(nèi)目前的大部分 ERP(財務(wù))軟件產(chǎn)品即屬于此 類 結(jié)構(gòu)。 由于本系統(tǒng)主要針對局域網(wǎng)使用,所以應(yīng)該使用 C/S 結(jié)構(gòu) 作為開發(fā)的主體架構(gòu)。 C/S 結(jié)構(gòu)的優(yōu)點是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在 客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度快。 C/S 架構(gòu) 軟件的優(yōu)勢 : ( 1)應(yīng)用服務(wù)器運行數(shù)據(jù)負(fù)荷較輕。最簡單的 C/S 體系結(jié)構(gòu)的 數(shù)據(jù)庫 應(yīng)用由兩部分組成,即客戶應(yīng)用 程序 和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序運行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當(dāng)需要對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運行數(shù)據(jù)負(fù)荷 較輕。 ( 2)數(shù)據(jù)的儲存管理功能較為透明。在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨立進(jìn)行的,前臺應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運行數(shù)據(jù),在服務(wù)器程序中不集中實現(xiàn),例如訪問者的權(quán)限,編號可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是 “透明 ”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺程序不是非常 “瘦小 ”,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在 C/S 體系 的下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨立的專門管理。 ( 3) C/S 架構(gòu)的劣勢是高昂的維護(hù)成本且投資大。首先,采用 C/S 架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺來實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正 “統(tǒng)一 ”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問同一個數(shù)據(jù)庫才能有效實現(xiàn),有這樣一些問題,如果需要建立 “實時 ”的數(shù)據(jù)同步,就必須在兩地間建立實時的通訊連接,保持兩地的數(shù)據(jù)庫服務(wù)器在線運行,網(wǎng)絡(luò)管理工作人員既要對服務(wù)器維護(hù)管理,又要對客戶端維護(hù)和管理,這北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 19 需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成 本很高,維護(hù)任務(wù)量大。 建立在局域網(wǎng)的基礎(chǔ)上的 Client/Server 與 建立在廣域網(wǎng)的基礎(chǔ)上的 Browser/Server 的區(qū)別有如下幾點: ( 1)硬件環(huán)境不同: C/S 一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。 B/S 建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng),租用設(shè)備,信息自己管理,有比 C/S 更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行。 ( 2)對安全要求不同 C/S 一般面向相對固定的用戶群,對信息安全的控制 能力很強(qiáng)。一般高度機(jī)密的信息系統(tǒng)采用 C/S 結(jié)構(gòu)適宜,可以通過 B/S 發(fā)布部分可公開信息。 B/S 建立在廣域網(wǎng)之上,對安全的控制能力相對弱,面向是不可知的用戶群。 (3) 對程序架構(gòu)不同 C/S 程序可以更加注重流程,可以對權(quán)限多層次校驗,對系統(tǒng)運行速度可以較少考慮。B/S 對安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上。比 C/S 有更高的要求, B/S 結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢,從 MS 的 .Net 系列的 BizTalk2021Exchange2021等,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng)。 服 務(wù) 器客 戶 端 客 戶 端 客 戶 端客 戶 端 客 戶 端客 戶 端 圖 36 基于本課題的 C/S 系統(tǒng)架構(gòu)圖 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 20 功能模塊分析 ?寫數(shù)據(jù) ?注冊 ?驗證 ?驗證成功 ?登陸 ?通過驗證 ?發(fā)消息 ?存儲轉(zhuǎn)發(fā) ?存儲轉(zhuǎn)發(fā) 圖 37 即時通信系統(tǒng)整體架構(gòu)圖 整個系統(tǒng)由一個服務(wù)器端和多個客戶端組成。服務(wù)器主要起偵測和轉(zhuǎn)發(fā)信息的作用。服務(wù)器端先開啟,然后開始偵聽客戶端的狀態(tài)。當(dāng)偵測到請求登陸信息后便進(jìn)行驗證,成功后建立一個點對點的連接。然后通知所有其它的用戶該用戶上線。當(dāng)客戶端發(fā)信息時,首先由客戶端發(fā)出然后在服務(wù)器端接收到,假如是聊天的話就分析出要發(fā)送的對象并進(jìn)行轉(zhuǎn)發(fā)。所以服務(wù)器端是整個系統(tǒng)的核心部分。具有 驗證登陸和轉(zhuǎn)發(fā)信息兩大功能。根據(jù)以上架構(gòu)圖,可以很快地選擇適合本系統(tǒng)的體系結(jié)構(gòu)。 數(shù)據(jù)庫系統(tǒng) 服務(wù)器 服務(wù)器 客戶端1 注冊服務(wù)器 服務(wù)器 通信服務(wù)器 服務(wù)器 客戶端2 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 21 功能架構(gòu)分析 38 系統(tǒng)模塊結(jié)構(gòu)圖 主程序模塊:一開始程序啟動時,便啟動兩個模塊:一個是偵聽??欤脕韨蓽y當(dāng)前是否有客房端要登陸。另一個是檢測模塊,用來偵測當(dāng)前的用戶分布網(wǎng)絡(luò)情況,當(dāng)檢查完畢后,將把邏輯拓?fù)鋱D生成列表形式在用戶列表上顯示出來。形象地顯示當(dāng)前在線用戶的情況。 偵測模塊:用來檢測當(dāng)前在線用戶具體信息,當(dāng)前用戶是否可以與其進(jìn)行通信,并將檢測到的信息 及時反饋給用戶列表。 通信模塊:用來進(jìn)行信息傳輸,分為數(shù)據(jù)輸入模塊和數(shù)據(jù)輸出模塊。數(shù)據(jù)輸入模塊指接收別的客戶端發(fā)送的信息,其中還包括兩種情況:由別的客戶端通過聊天而接收到的信息。而 數(shù)據(jù)輸出模塊則是向別的客房端發(fā)送信息,同樣包括在聊天狀態(tài)下向別的客戶端發(fā)信息。 主程序模塊 偵測模塊 通信模塊 聊天輸入模塊 聊天輸出模塊 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 22 核心模塊分析及代碼 1. 偵聽模塊 ?啟動 ?打開端口進(jìn)行偵聽 圖 39 偵聽模塊結(jié)構(gòu)圖 主程序啟動后將建 它采用了兩個線程,其中一個線程處理各個客戶端的連接請求( accept),另一個在客戶端請求連接成功后處理接收到的命令并返回信息,包括用戶注冊、登陸、下線、生成在線用戶列表、查詢修改某個在線用戶的信息等 2. 登陸模塊 ?通過端口號和 IP 地址請求登陸 ?載入新的 socket 控件,并發(fā)出特征碼“ C”,意為連接 ?判斷特殊碼,是“ C”客戶端顯示登陸成功并發(fā)出特征 碼“ N”和客戶端昵稱 ?判斷特殊碼,是“ N”服務(wù)器端顯示客戶名登陸成功并 更新自身用戶列表然后再分別更新所有在線的用戶列表 圖 310 登陸 模塊結(jié)構(gòu)圖 服務(wù)器端: 開啟第二個線程創(chuàng)建消息服務(wù)器端,接受各個客戶端的連接請求,端口是 4001。 while(TRUE) { int sockLen=sizeof(iAddr)。 if((sAccept=accept(sListen,(SOCKADDR*)amp。iAddr,amp。sockLen))==INVA LID_SOCKET) { 主系統(tǒng) 服務(wù)器端 服務(wù)器端 客戶機(jī)端 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 23 AfxMessageBox(錯誤 :accept failed in threadMsg)。 return 1。 } AfxBeginThread(threadRecvMsgServer,(LPVOID)sAccept)。 } 客戶機(jī)端: 開啟第一個線程登陸服務(wù)器,端口是 4000。以下 1000 表示我的 id 號,發(fā)送 ”USER 1000” 和 ”PASS password”命令要求登陸服務(wù)器。 如果登陸成功,就發(fā)送 ”LIST \t\n”命令到服務(wù)器端,取得在線用戶的列表,并顯示在列表框內(nèi)。在線列表以結(jié)構(gòu)數(shù)組的形勢傳送。 recv(m_dcSocketClient, (char *)(m_onlineUser),sizeof(m_onlineUser),0); 其中: ONLINEUSER_INF m_onlineUser[MAX_ONLINE_NUM]。 //在線用戶數(shù)組 typedef struct { long id。 char nickname[20]。 char ip[16]。 SOCKET s。 }ONLINEUSER_INF,*LPONLINEUSER_INF。 3. 通信模塊 聊天 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 24 ?雙擊用戶列表彈出聊天對話框 ?發(fā)出特征碼“ L”和接收者昵稱及信息內(nèi)容 ?在當(dāng)前在線用戶列表中查找是否有與接收者 昵稱相同,有則發(fā)出特征碼“ M”和發(fā)送者 昵稱及信息內(nèi)容。 ?經(jīng)查找得到接收方 圖 312 聊天模塊結(jié)構(gòu)圖 服務(wù)器端 服務(wù)器端 客戶機(jī)端1 客戶機(jī)端2 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 25 圖 314 客戶機(jī)端列表更新模塊結(jié)構(gòu)圖 逐一向列表添加用戶名 更新客戶機(jī)列表用戶數(shù) 接收并分離當(dāng)前在線用戶名 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 26 用戶界面設(shè)計 服務(wù)器端監(jiān)控 要實現(xiàn)通信,必需有 1 個或 1 個以上的客戶機(jī)端同時在線才可以進(jìn)行通信。所以要實現(xiàn)這個功能,再運行一個客戶機(jī)端程序以達(dá)到通信的目的。 在服務(wù)器端將會提示當(dāng)前另一用戶上線并提示,同時用戶人數(shù)和用戶列表也同步進(jìn)行更新。具體效果如圖 315 所示: 圖 315 服務(wù)器端監(jiān)控 狀態(tài)圖 聊天狀態(tài)圖 要實現(xiàn)聊天功能,首先要 服務(wù)器 端開啟,然后客戶端才能運行。服務(wù)器端先開始偵聽,并設(shè)定通信端口。當(dāng)?shù)谝粋€客戶端請求連接后,服務(wù)器端接收到客戶端的連接要求后建立一個基于連接,此時客戶端發(fā)送的消息服務(wù)器端可以偵聽得到。當(dāng)?shù)诙€客戶端連接后,服務(wù)器端和客戶端用戶列表進(jìn)行更新。此時兩個客戶即可以進(jìn)行聊天,彼此發(fā)言通過服務(wù)器端轉(zhuǎn)發(fā)給各 個客戶器端進(jìn)行顯示,實現(xiàn)聊天功能。 具體效果如圖 316 所示: 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 27 圖 316 聊天功能狀態(tài)圖 傳輸文件 本程序除了可以進(jìn)行聊天功能之外,還可以進(jìn)行文件傳輸,具體方式是雙擊你要傳輸?shù)膶ο螅缓笤诹奶齑翱邳c擊傳輸文件。具體效果如圖 317 所示: 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 28 圖 317 傳輸文件狀態(tài)圖 北京理工大學(xué)珠海學(xué)院 2021 屆畢業(yè)設(shè)計(論文) 29 4. 系統(tǒng)測試 軟件測試的目的決定了如何去組織測試。如果測試的目的是為了盡可能多地找出錯誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯比較多的位置。如果測試目的是為了給最終用戶提供具有一定可信度的質(zhì)量 評價,那么測試就應(yīng)該直接針對在實際應(yīng)用中會經(jīng)常用到的商業(yè)假設(shè)。 首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。同時,這種分析也能幫助我們設(shè)計
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1