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

正文內(nèi)容

基于vc的局域網(wǎng)聊天室2-文庫吧

2025-06-08 18:43 本頁面


【正文】 等。由于兩臺計算機之間采用的是客戶機/服務器模式,為保證數(shù)據(jù)的可靠性,可以采用了基于流方式的套接字編程[8]。4 局域網(wǎng)聊天室的設計 客戶機/服務器模式通信的兩個應用程序間相互作用的主要模式是客戶機/服務器模式,即客戶向服務器發(fā)出服務請求,服務器接收到請求后,提供相應的服務。客戶機/服務器模式的建立基于以下兩點:首先。建立網(wǎng)絡的起因是網(wǎng)絡中軟硬件資源、運算能力和信息不均等,需要共享,從而造就擁有眾多資源的主機提供服務,資源較少的客戶請求服務這一非對等作用。其次,網(wǎng)間進程通信完全是異步的,相互通信的進程間既不存在父子關系,又不共享內(nèi)存緩沖區(qū),因此需要一種機制為希望通信的進程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供同步[9]??蛻魴C/服務器模式在操作過程中采取的是主動請求方式:首先服務器方要先啟動,并根據(jù)請求提供相應服務:1) 打開通信通道并告知本地主機,它愿意在某一公認地址上接收客戶請求。2) 等待客戶請求到達該端口。3) 接收到服務請求,處理該請求并發(fā)送應答信號。服務完成后,關閉與客戶的通信鏈路,并終止。4) 返回第二步,等待客戶請求。5) 關閉服務器。客戶方:1) 打開一通信通道,并連接到服務器所在主機的特定端口。 2) 向服務器發(fā)服務請求,等待并接收應答。3) 請求結(jié)束后關閉通信通道并終止。由此可知:1) 客戶與服務器進程的作用是非對稱的,因此編碼不同。2) 服務進程一般是先于客戶請求而啟動的。只要系統(tǒng)運行,該服務進程一直存在,直到正常終止或被強迫終止。 系統(tǒng)實現(xiàn)原理聊天系統(tǒng)的設計跟普通網(wǎng)站設計有著許多不同的地方,普通網(wǎng)站設計所考慮的因素,例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,在設計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設計要點:在Internet上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務器端和客戶端兩部分程序。為了利用重載套接字的消息相應函數(shù) 必須從CAsyncSocket派生出自己的套接字類,有時為了分開監(jiān)聽套接字和客戶端套接字,還應該分別派生監(jiān)聽套接字類和客戶端套接字類。利用這兩類函數(shù)就可以開始寫網(wǎng)絡通信程序。整個過程可以分成三個階段 連接建立 、數(shù)據(jù)傳和拆除連接[10]??蛻舳朔掌鹘⒎斩吮O(jiān)聽等待并接受連接創(chuàng)建連接套接字發(fā)送消息Send接受消息Receive關閉套接字Close向服務端發(fā)送連接請求 Connect發(fā)送消息Send接受消息Receive關閉套接字Close圖3 系統(tǒng)實現(xiàn)原理圖在套接字創(chuàng)建以及通信的過程中,將用到很多函數(shù)處理相關事件,具體函數(shù)見下:(1) AfxSocketInit(): 此函數(shù)在初始化應用程序函數(shù)中調(diào)用,用于確定Winsock版本并做一些套接字的初始化工作。(2) Create(): 創(chuàng)建套接字,在創(chuàng)建監(jiān)聽套接字時必須加上端口號。(3) Listen(): 監(jiān)聽套接字專用,用于向監(jiān)聽套接字發(fā)送對端口監(jiān)聽的命令。(4) Connect(): 客戶端套接字專用,用于向服務器發(fā)送連接請求。(5) Accept(): 監(jiān)聽套接字專用,用于接受客戶端通過網(wǎng)絡發(fā)送的連接請求,建立連接。(6) Send(): 用于向套接字發(fā)送數(shù)據(jù)。(7) Receive(): 用于套接字接受數(shù)據(jù)。(8) Close(): 關閉套接字,可由析構(gòu)函數(shù)調(diào)用。在整個通信過程中,當某一事件觸發(fā)時,應用框架將收到某些消息,從而自動調(diào)用響應函數(shù)??梢栽谶@些函數(shù)中寫入自己的代碼,從而更好的完成通信過程。具體函數(shù)見下:(1) OnAccept(): 監(jiān)聽套接字在端口聽到連接請求時應用程序框架自動調(diào)用,以告知可以接受請求或拒絕連接??稍谠摵瘮?shù)中調(diào)用Accept()來連接請求,建立連接。(2) OnConnect(): 當客戶端套接字連接請求完成后 ,應用程序框架調(diào)用該函數(shù) ,告之是否成功。(3) OnSend(): 框架調(diào)用此函數(shù)來通知該套接字現(xiàn)在可以調(diào)用Send函數(shù)來傳送數(shù)據(jù)。(4) OnReceive(): 框架調(diào)用此函數(shù)來告訴套接字現(xiàn)在可以調(diào)用Receive函數(shù)從數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)。(5) OnCloes(): 框架調(diào)用該函數(shù)告知套接字與其連接的對方套接字已經(jīng)斷開連接。 系統(tǒng)工作流程結(jié)束啟動服務器判斷啟動啟動客戶端判斷連接登入聊天室退出聊天室退出服務器開始否否是是圖4 系統(tǒng)總工作流程圖首先啟動聊天室的服務端,設置端口,打開監(jiān)聽。然后啟動客戶端(可啟動多個),設置用戶昵稱和連接端口等信息,連接服務器。進入聊天室后用戶之間可以進行簡單的文字聊天。當用戶發(fā)送信息后,服務器會收到用戶發(fā)送的信息,然后服務器把收到的信息發(fā)送給所有在線用戶。這樣登入服務器的用戶們之間就可以進行簡單的文字聊天了。當用戶進入聊天室后,服務器會發(fā)送相應的消息通知該用戶進入了聊天室。當用戶斷開連接后,服務器也會通知該用戶下線。整個聊天室基于CSocket的流式連接放大。基于TCP傳送控制協(xié)議。該協(xié)議所要求用戶必須先確定連接成功后才能發(fā)送消息,如果是UDP協(xié)議那可以不進行連接過程,這樣實時性比較好[11]。 界面設計圖5 界面資源圖在設計的過程中,當掌握了核心思想內(nèi)容,成功完成功能實現(xiàn)后,界面設計永遠是重要的部分。一個好的界面會讓使用者方便操控,會讓功能直觀的實現(xiàn),也會給人們良好的視覺沖擊。上圖為該局域網(wǎng)聊天室的服務器界面資源圖。對于基本內(nèi)容發(fā)送及接受消息,設計都以比較突出的方式顯示,并且占據(jù)大部分界面。上半部為服務器名稱設置,監(jiān)聽端口的設置。右邊部分為一些其它內(nèi)容設置[12]。5 局域網(wǎng)聊天室的實現(xiàn) 準備工作注意勾選這項了!圖6 設置MFC向?qū)D該聊天室是基于MFC的CSocket編程,首先建立正確的MFC AppWizard(exe)程序后,進行MFC程序向?qū)У脑O置中要記得勾選Windows Socket這項。這樣編譯器會自動的加載有關Socket的相關動態(tài)連接庫和靜態(tài)庫及相應的頭文件到程序中。如果沒有勾選也沒關系,只要在編程過程中正確加入相應內(nèi)容即可!正確的向?qū)гO置會給你省去很多工作[13]!在開始程序之前先得創(chuàng)建
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1