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

正文內(nèi)容

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

2023-07-08 18:43:48 本頁面
 

【正文】 消息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版本并做一些套接字的初始化工作。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。2) 服務(wù)進(jìn)程一般是先于客戶請(qǐng)求而啟動(dòng)的??蛻舴?1) 打開一通信通道,并連接到服務(wù)器所在主機(jī)的特定端口。3) 接收到服務(wù)請(qǐng)求,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。建立網(wǎng)絡(luò)的起因是網(wǎng)絡(luò)中軟硬件資源、運(yùn)算能力和信息不均等,需要共享,從而造就擁有眾多資源的主機(jī)提供服務(wù),資源較少的客戶請(qǐng)求服務(wù)這一非對(duì)等作用。數(shù)據(jù)報(bào)文方式由于取消了重發(fā)校驗(yàn)機(jī)制,能夠達(dá)到較高的通訊速率,可以用作一些對(duì)數(shù)據(jù)可靠性要求不高的通訊 ,如實(shí)時(shí)的語音、像轉(zhuǎn)送、播消息等。在這種方式下,兩個(gè)通訊的應(yīng)用程序之間先要建立一種虛擬的連接。CSocket類實(shí)際上來源于 CAsyncSocket類,但該類編程比較復(fù)雜,需要編寫底層函數(shù)來進(jìn)行通信操作,而 CSocket為底層函數(shù)提供了一個(gè)更抽象的封裝,替編程者執(zhí)行對(duì)底層函數(shù)的操作,簡(jiǎn)化了Socket編程。若通過套接字接口進(jìn)行網(wǎng)絡(luò)互連,則程序在每個(gè)網(wǎng)絡(luò)互連的末端都需要一個(gè)套接字,套接字接口相當(dāng)于文件系統(tǒng),可以使用 API通過網(wǎng)絡(luò)軟件申請(qǐng)一個(gè)可以指定特定套接字的句柄來定義套接字的特性。它是網(wǎng)絡(luò)通信的基本構(gòu)件。今天,SOCKET接口是TCP/IP網(wǎng)絡(luò)最為通用的API,也是INTERNET上進(jìn)行應(yīng)用開發(fā)最為通用的API。這種可視化的編程方法易學(xué)易用,而且大大提高了工作效率[6]。,首先了解一下可視化編程的概念。3 開發(fā)環(huán)境及編程語言介紹 Visual C++可視化集成開發(fā)環(huán)境,適用面非常廣泛。整個(gè)工程采用結(jié)構(gòu)化的方式進(jìn)行編譯,逐步完善系統(tǒng)功能。本課題主要研究的是局域網(wǎng)聊天室,該聊天室采用客戶端/服務(wù)器(C/S)模式和TCP連接,能實(shí)現(xiàn)用戶在客戶端與服務(wù)器間傳遞文字信息。基于VC++網(wǎng)絡(luò)編程的強(qiáng)大功能,本次畢業(yè)設(shè)計(jì)使用VC++編寫一個(gè)聊天系統(tǒng)。CSocket是MFC在CAsyncSocket基礎(chǔ)上派生的一個(gè)同步阻塞Socket的封裝類。它有兩個(gè)模塊組成:服務(wù)器和客戶端。摘 要隨著計(jì)算機(jī)科學(xué)和Internet 的飛速發(fā)展, 網(wǎng)上聊天已成為人們相互交流的一種方式, 與Email、電話相比, 聊天服務(wù)更具有實(shí)時(shí)性和有效性。服務(wù)器模塊主要用來維護(hù)網(wǎng)絡(luò)上所有用戶的信息,如用戶名;聊天客戶端模塊主要包括用戶登錄、發(fā)送信息、接收信息等。而Socket是Windows中得到廣泛應(yīng)用的、開放的、支持多協(xié)議的網(wǎng)絡(luò)編程接口。本系統(tǒng)建立在VC平臺(tái)上,系統(tǒng)的設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο蟮脑O(shè)計(jì)原則。它有兩個(gè)程序組成:服務(wù)器和客戶端,首先需要登錄服務(wù)器,需要指定服務(wù)器地址和端口號(hào),同時(shí)設(shè)置一個(gè)網(wǎng)名,與服務(wù)器建立連接,如果所取網(wǎng)名已經(jīng)被其他已經(jīng)登錄的客戶端使用,服務(wù)器會(huì)告訴客戶端 ,要求重新登錄。研究本課題需要熟練掌握VC++語言,并且熟悉VC平臺(tái)的操作,利用socket編程技術(shù)、TCP協(xié)議進(jìn)行局域網(wǎng)聊天軟件的實(shí)際開發(fā)。、資源編輯器、工程編譯工具、一個(gè)增量連接器、源代碼瀏覽器、集成調(diào)試工具,以及一套聯(lián)機(jī)文檔。可視化技術(shù)是當(dāng)前發(fā)展迅速并引人注目的技術(shù)之一,它的特點(diǎn)是把原來抽象的數(shù)字、表格、功能邏輯等用直觀的圖形、圖象的形式表現(xiàn)出來[5]。 網(wǎng)絡(luò)編程80年代初,美國政府的高級(jí)研究工程機(jī)構(gòu)(ARPA)給加利福尼亞大Berkeley分校提供了資金,讓他們?cè)赨NIX操作系統(tǒng)下實(shí)現(xiàn)TCP/IP協(xié)議。套接字是從英文單詞 socket翻譯過來的, ( Socket在英文中是插座的意思,在這里設(shè)計(jì)者實(shí)際上是暗指電話插座。套接字是可以被命名和尋址的通信端點(diǎn),是網(wǎng)絡(luò)互連終點(diǎn)。當(dāng)然 ,套接字句柄和文件句柄是不同的,文件句柄指向一個(gè)特定的文件和設(shè)備,而套接字句柄并不代表一個(gè)特定的終點(diǎn)或目標(biāo)地址。CSocket類提供了一個(gè)高級(jí)的 Socket支持,運(yùn)用了 MFC的序列化類來提供和傳輸 Socket對(duì)象。其過程好像客戶機(jī)在給服務(wù)器打電話,只有服務(wù)器拿起了聽筒,才有可能開始傳輸數(shù)據(jù),這種方式對(duì)應(yīng)的TCP協(xié)議。由于兩臺(tái)計(jì)算機(jī)之間采用的是客戶機(jī)/服務(wù)器模式,為保證數(shù)據(jù)的可靠性,可以采用了基于流方式的套接字編程[8]。其次,網(wǎng)間進(jìn)程通信完全是異步的,相互通信的進(jìn)程間既不存在父子關(guān)系,又不共享內(nèi)存緩沖區(qū),因此需要一種機(jī)制為希望通信的進(jìn)程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供同步[9]。服務(wù)完成后,關(guān)閉與客戶的通信鏈路,并終止。 2) 向服務(wù)器發(fā)服務(wù)請(qǐng)求,等待并接收應(yīng)答。只要系統(tǒng)運(yùn)行,該服務(wù)進(jìn)程一直存在,直到正常終止或被強(qiáng)迫終止。為了利用重載套接字的消息相應(yīng)函數(shù) 必須從CAsyncSocket派生出自己的套接字類,有時(shí)為了分開監(jiān)聽套接字和客戶端套接字,還應(yīng)該分別派生監(jiān)聽套接字類和客戶端套接字類。(2) Create(): 創(chuàng)建套接字,在創(chuàng)建監(jiān)聽套接字時(shí)必須加上端口號(hào)。(6) Send(): 用于向套接字發(fā)送數(shù)據(jù)??梢栽谶@些函數(shù)中寫入自己的代碼,從而更好的完成通信過程。(3) OnSend(): 框架調(diào)用此函數(shù)來通知該套接字現(xiàn)在可以調(diào)用Send函數(shù)來傳送數(shù)據(jù)。然后啟動(dòng)客戶端(可啟動(dòng)多個(gè)),設(shè)置用戶昵稱和連接端口等信息,連接服務(wù)器。當(dāng)用戶進(jìn)入聊天室后,服務(wù)器會(huì)發(fā)送相應(yīng)的消息通知該用戶進(jìn)入了聊天室。該協(xié)議所要求用戶必須先確定連接成功后才能發(fā)送消息,如果是UDP協(xié)議那可以不進(jìn)行連接過程,這樣實(shí)時(shí)性比較好[11]。對(duì)于基本內(nèi)容發(fā)送及接受消息,設(shè)計(jì)都以比較突出的方式顯示,并且占據(jù)大部分界面。這樣編譯器會(huì)自動(dòng)的加載有關(guān)Socket的相關(guān)動(dòng)態(tài)連接庫和靜態(tài)庫及相應(yīng)的頭文件到程序中。代碼如下:class csocket:public CSocket{public: void OnReceive(int i){ dlgonrev(mynum)。 void OnClose(int i){ dlgoncl()。 }。在上面的代碼中,只解釋一個(gè)封裝于CAsyncSocket中的函數(shù)。該代碼意為用對(duì)象dlg調(diào)用函數(shù)onrev(),onrev()在類CTcpseverDlg中做了聲明和定義,后續(xù)會(huì)去分析這個(gè)函數(shù)。當(dāng)服務(wù)器收到網(wǎng)絡(luò)發(fā)送的消息后,框架自動(dòng)調(diào)用函數(shù)OnReceive(),這樣就執(zhí)行了代碼dlgonrev(mynum)。 char ss
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1