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

正文內(nèi)容

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

2025-06-08 18:43 本頁(yè)面


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