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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文--基于vc的局域網(wǎng)聊天室-文庫(kù)吧資料

2024-12-11 17:57本頁(yè)面
  

【正文】 。 發(fā)送的聊天記錄 灰色了 可清空了 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 18 cw=GetDlgItem(IDC_EDIT4)。 CWnd *cw=GetDlgItem(IDC_EDIT3)。 (this,csnum)。port65536){ SetDlgItemText(IDC_listen,正在監(jiān)聽(tīng) ……)。 if(port1024amp。 ()。 GetDlgItemText(IDC_EDIT4,portstr)。 GetDlgItemText(IDC_EDIT3,ipstr)。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 17 圖 8 用戶登入后聊天圖 void CTcpseverDlg::Onlisten() { CString ipstr,portstr。函數(shù)先把以前聊天區(qū)的內(nèi)容存儲(chǔ)下來(lái),再把其要發(fā)送的內(nèi)和以前的內(nèi)容都打印到屏幕上。 ceLineScroll(ceGetLineCount()1)。 SetDlgItemText(IDC_EDIT1,history+\r\n+str)。i=csnum。 int len=()。 GetDlgItemText(IDC_EDIT2,str)。下面貼出部分實(shí)現(xiàn)代碼: void CTcpseverDlg::Onsend() { CString str,history。 在監(jiān)聽(tīng)端口過(guò)程中可能發(fā)生端口被占用的錯(cuò)誤信息,這樣就得重新設(shè)置端口了。當(dāng)點(diǎn)擊清空后會(huì)清空聊天區(qū)的信息記錄。 聊天區(qū)右上角有個(gè)“清空”按鈕,初始狀態(tài)是灰色的,不可點(diǎn)擊。但是 01023 被系統(tǒng)占用了, 只能設(shè)置從 102465535 中的號(hào)碼。 功能 實(shí)現(xiàn) 圖 7 服務(wù)器啟動(dòng)界面圖 運(yùn)行 VC,打開(kāi)服務(wù)端時(shí)啟動(dòng)界面如上。 這些代碼首先對(duì)窗口進(jìn)行了一些文本設(shè)置和某些窗口的隱藏。 CWnd封裝了函數(shù) GetDlgItem(),這樣對(duì)于其派生的比如編輯框類(lèi),靜態(tài)文本類(lèi),按鈕類(lèi)等都繼承了此函數(shù)。 // return TRUE unless you set the focus to a control } 代碼中又涉及到了虛函數(shù)多態(tài)性,實(shí)現(xiàn)了動(dòng)態(tài)聯(lián)編。 ((HBITMAP)())。 (IDB_BITMAP1)。 SetDlgItemText(IDC_EDIT4,1025)。 wndShowWindow(SW_HIDE)。 wnd=GetDlgItem(IDC_MARK)。 wnd=GetDlgItem(IDC_MARKST)。 在類(lèi) CTcpseverDlg 的初始化函數(shù)中 也做了一些事情,看代碼: BOOL CTcpseverDlg::OnInitDialog() { CWnd* wnd。 } AfxSocketInit()函數(shù)如果初始化成功則返回非零,否者返回零。 部分代碼如下: if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED)。 函數(shù) setp()起到了一個(gè)指針保護(hù)作用。 下面的 OnAccept 和 OnClose 函數(shù)都是框架自動(dòng)調(diào)用的,分別在建立連接和斷開(kāi)連接后觸發(fā)調(diào)用。并設(shè)置正確的滾動(dòng)條信息。 } 從定義中可以看出,函數(shù)實(shí)現(xiàn)的功能是把收到的信息(某客戶端發(fā)送的)發(fā)送到連接到這個(gè)聊天室的所有用戶。 CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT1))。 str=str1+\r\n+str。i++) if(csrev[i]) csrev[i].Send(str,100)。 for(i=1。 csrev[mynum].Receive(ss,100)。j++) ss[j]=39。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 14 for(int j=0。int i?,F(xiàn)在來(lái) 分析 onrev()在類(lèi) CTcpseverDlg 中的定義?;蛘甙杨?lèi) csocket 類(lèi)的聲明放在類(lèi) CTcpseverDlg 之后。在類(lèi) csocket 中直接用到了CTcpseverDlg 類(lèi)的對(duì)象。在函數(shù)的實(shí)現(xiàn)中 加入了自己的代碼: dlgonrev(mynum)。 OnReceive()函數(shù)在 MSDN中的聲明是這樣的: virtual void OnReceive( int nErrorCode )。 }。 private: CTcpseverDlg *dlg。 dlg=severdlg。 }。 }。 }。當(dāng)有相關(guān)消息到來(lái)時(shí),應(yīng)用框架會(huì)自動(dòng)調(diào)用這些函數(shù),從而可以比較方便的實(shí)現(xiàn)套接字之間的信息傳輸。如果沒(méi)有勾選也沒(méi)關(guān)系,只要在編程過(guò)程中正確加入相應(yīng)內(nèi)容即可!正確的向?qū)гO(shè)置會(huì)給你省去很多工作 [13]! 在開(kāi) 始程序之前先得創(chuàng)建一個(gè)派生于 CAsyncSocket 的類(lèi),當(dāng)然也可以直接派生于CSocket。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 12 5 局域網(wǎng)聊天室的 實(shí)現(xiàn) 準(zhǔn)備工作 圖 6 設(shè)置 MFC 向?qū)D 該聊天室是基于 MFC 的 CSocket 編程,首先建立正確的 MFC AppWizard(exe)程序后,進(jìn)行 MFC 程序向?qū)У脑O(shè)置中要記得勾選 Windows Socket 這項(xiàng)。上 半部為服務(wù)器名稱(chēng)設(shè)置,監(jiān)聽(tīng)端口的設(shè)置。 上圖為該局域網(wǎng)聊天室的服務(wù)器界面資源圖。 界面設(shè)計(jì) 圖 5 界面 資源圖 在設(shè)計(jì)的過(guò)程中,當(dāng)掌握了核心思想內(nèi)容,成功完成功能實(shí)現(xiàn)后,界面設(shè)計(jì)永遠(yuǎn)是重要的部分?;?TCP 傳送控結(jié)束 啟動(dòng)服務(wù)器 判斷啟動(dòng) 啟動(dòng)客戶端 判斷連接 登入聊天室 退出聊天室 退出服務(wù)器 開(kāi)始 否 否 是 是 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 11 制協(xié)議。當(dāng)用戶斷開(kāi)連接后,服務(wù)器也會(huì)通知該用戶 下線。這樣登入服務(wù)器的用戶們之間就可以進(jìn)行簡(jiǎn)單的文字聊天了。進(jìn)入聊天室后用戶之間可以進(jìn)行簡(jiǎn)單的文字聊天。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 10 系統(tǒng) 工作流程 圖 4 系統(tǒng)總工作流程圖 首先 啟動(dòng)聊天室的服務(wù)端,設(shè)置端口,打開(kāi)監(jiān)聽(tīng)。 ( 4) OnReceive(): 框架調(diào)用此函數(shù)來(lái)告訴套接字現(xiàn)在可以調(diào)用 Receive 函數(shù)從數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)。 ( 2) OnConnect(): 當(dāng)客戶端套接字連接請(qǐng)求完成后 ,應(yīng)用程序框架調(diào)用該函數(shù) ,告之是否成功。具體函數(shù)見(jiàn)下: ( 1) OnAccept(): 監(jiān)聽(tīng)套接字在端口聽(tīng)到連接請(qǐng)求時(shí) 應(yīng)用程序框架自動(dòng)調(diào)用,以告知可以接受請(qǐng)求或拒絕連接。 在整個(gè)通信過(guò)程中,當(dāng)某一事件觸發(fā)時(shí),應(yīng)用框架將收到某些消息,從而自動(dòng)調(diào)用響應(yīng)函數(shù)。 ( 7) Receive(): 用于套接字接受數(shù)據(jù)。 ( 5) Accept(): 監(jiān)聽(tīng)套接字專(zhuān)用,用于接受客戶端通過(guò)網(wǎng)絡(luò)發(fā)送的連接請(qǐng)求,建立連接。 ( 3) Listen(): 監(jiān)聽(tīng)套接字專(zhuān)用,用于向監(jiān)聽(tīng)套接字發(fā)送對(duì)端口監(jiān)聽(tīng)的命令。 圖 3 系統(tǒng)實(shí)現(xiàn)原理圖 在套接字創(chuàng)建以及通信的過(guò)程中,將用到很多函數(shù)處理相關(guān)事件,具體函數(shù)見(jiàn)下: ( 1) AfxSocketInit(): 此函數(shù)在初始化應(yīng)用程序函數(shù)中調(diào)用,用于確定 Winsock 版本并做一些套接字的初始化工作。利用這兩類(lèi)函數(shù)就可以開(kāi)始寫(xiě)網(wǎng)絡(luò)通信程序。因此,程序要在 TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。 系統(tǒng)實(shí)現(xiàn)原理 聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如,普通網(wǎng)站需要對(duì)布局進(jìn)入大量美化以及動(dòng)畫(huà)設(shè)計(jì)等等,而聊天室只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可。 2) 服務(wù)進(jìn)程一般是先于客戶請(qǐng)求而啟動(dòng)的。 3) 請(qǐng)求結(jié)束后關(guān)閉通信通道并終止。 客戶方 : 1) 打開(kāi)一通信通道 ,并連接到服務(wù)器所在主機(jī)的特定端口 。 4) 返回第二步 ,等待客戶請(qǐng)求 。 3) 接收到服務(wù)請(qǐng)求 ,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。 客戶機(jī) /服務(wù)器模式在操作過(guò)程中采取的是主動(dòng)請(qǐng)求方式 :首先服務(wù)器方要先啟動(dòng) ,并根據(jù)請(qǐng)求提供相應(yīng)服務(wù) : 1) 打開(kāi)通信通道并告知本地主機(jī) ,它愿意在某一公認(rèn)地址上接收客戶請(qǐng)求 。建立網(wǎng)絡(luò)的起因是網(wǎng)絡(luò)中軟硬件資源、運(yùn)算能力和信息不均等 ,需要共享 ,從而造就擁有眾多資源的主機(jī)提供服務(wù) ,資源較少的客戶請(qǐng)求服務(wù)這一非對(duì)等作用。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 7 4 局域網(wǎng)聊天室的設(shè)計(jì) 客戶機(jī) /服務(wù)器模式 通信的兩個(gè)應(yīng)用程序間相互作用的主要模式是客戶機(jī) /服務(wù)器模式 ,即客戶向服務(wù)器發(fā)出服務(wù)請(qǐng)求 ,服務(wù)器接收到請(qǐng)求后 ,提供相應(yīng)的服務(wù)。數(shù)據(jù)報(bào)文方式由于取消了重發(fā)校驗(yàn)機(jī)制 ,能夠達(dá)到較高的通訊速率 ,可以用作一些對(duì)數(shù)據(jù)可靠性要求不高的通訊 ,如實(shí)時(shí)的語(yǔ)音、像轉(zhuǎn)送、 播消息等。第二種叫作數(shù)據(jù)報(bào)文方式 (DatagramSocket) ,又稱(chēng)無(wú)連接方式 ,這時(shí)兩臺(tái)計(jì)算機(jī)像是把數(shù)據(jù)放在一封封信里通過(guò)網(wǎng)絡(luò)寄給對(duì)方 ,信在傳送的過(guò)程中有可能會(huì)殘缺不全 ,而且 ,后發(fā)出的信也有可能會(huì)先收到 ,它對(duì)應(yīng)的是 UDP 協(xié)議 [7]。在這種方式下 ,兩個(gè)通訊的應(yīng)用程序之間先要建立一種虛擬的連接。利用 Socket 進(jìn)行通訊 ,有兩種主要的方式。 CSocket 類(lèi)實(shí)際上來(lái)源于 CAsyncSocket 類(lèi) ,但該類(lèi)編程比較復(fù)雜 ,需要編寫(xiě)底層函數(shù)來(lái)進(jìn)行通信操作 ,而 CSocket 為底層函數(shù)提供了一個(gè)更抽象的封裝 ,替編程者執(zhí)行對(duì)底層函數(shù)的操作 ,簡(jiǎn)化了 Socket 編程。基于套接字的程序先創(chuàng)建一個(gè)套接字 ,然后再將套接字和目標(biāo)終點(diǎn)連接起來(lái)。若通過(guò)套接字接口進(jìn)行網(wǎng)絡(luò)互連 ,則程序在每個(gè)網(wǎng)絡(luò)互連的末端都需要一個(gè)套接字 ,套接字接口相當(dāng)于文件系統(tǒng) ,可以使用 API 通過(guò)網(wǎng)絡(luò)軟件申請(qǐng)一個(gè)可以指定特定套接字的句柄來(lái)定義套接字的特性。換句話說(shuō) ,網(wǎng)絡(luò)互連是兩個(gè)計(jì)算機(jī)或處理器通過(guò)網(wǎng)絡(luò)相互傳輸數(shù)據(jù)。它是網(wǎng)絡(luò)通信的基本構(gòu)件。因?yàn)樵? Socket 環(huán)境下編程很像是打電話的模擬 ,Inter 的 IP 地址就是電話號(hào)碼 ,要打電話 ,首先要有個(gè)電話插座 ,在程序中就是向系統(tǒng)申請(qǐng)一個(gè) Socket,以后兩臺(tái)機(jī)器上的程序 “ 交談 ” 都是通過(guò)這個(gè) Socket 來(lái)進(jìn)行的。今天,SOCKET 接口是 TCP/IP 網(wǎng)絡(luò)最為通用的 API,也是 INTERNET 上進(jìn)行應(yīng)用開(kāi)發(fā)最為通用的 API。在這個(gè)項(xiàng)目中 研究人員為 TCP/IP網(wǎng)絡(luò)通信開(kāi)發(fā)了一個(gè) API(應(yīng)用程序接口)。這種可視化的編程方法易學(xué)易用,而且大大提高了工作效 率 [6]??梢暬幊淌撬闹匾獞?yīng)用之一。 由于 是一個(gè)可視化的開(kāi)發(fā)工具,在介紹 的各個(gè)組成部分之前,首先了解一下可視化編程的概念。使用 ,可以完成創(chuàng)建、調(diào)試、修改應(yīng)用程序等的各種操作。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 5 3 開(kāi)發(fā)環(huán)境及編程語(yǔ)言介紹 Visual C++可視化集成開(kāi)發(fā)環(huán)境 是微軟推出的一款可視化編程工具,適用面非常廣泛。 上述軟件 都實(shí)現(xiàn)了廣域網(wǎng)上的即時(shí)通信 ,在使用方面 各有特色,在實(shí)現(xiàn)方面也各有所長(zhǎng) 。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 4 圖 2 MSN 服務(wù)器 客戶端模型 騰訊使用的模型中,服務(wù)器主要處理客戶端各種狀態(tài)的控制,可以極大減輕服務(wù)器的處理壓力,但其內(nèi)部協(xié)議和實(shí)現(xiàn)復(fù)雜度都較高。并且在兩個(gè)客戶端之間不能建立直連的情況下,才由服務(wù)器進(jìn)行中轉(zhuǎn)通信。 參考了許多網(wǎng)絡(luò)上的資料,以及自己通過(guò)觀察騰訊 運(yùn)行時(shí)的各種細(xì)節(jié)。 騰訊無(wú)疑是國(guó)內(nèi)即時(shí)通訊市場(chǎng)的霸主,自從 99 年進(jìn)入即時(shí)通訊領(lǐng)域并迅速占市場(chǎng)之后,其在國(guó)內(nèi)用戶數(shù)量始終高居榜首,即 使近幾年面對(duì)微軟 MSN 的強(qiáng)大攻勢(shì),騰訊 的時(shí)常占有率依然穩(wěn)步增長(zhǎng)。并對(duì)今后的繼續(xù)完善做了展望! 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 3 2 國(guó)內(nèi)外聊天系統(tǒng)的現(xiàn)狀 目前國(guó)內(nèi)外做聊天系統(tǒng)的公司很多,產(chǎn)品也琳瑯滿目,國(guó)內(nèi)有諸如騰訊 、新浪 UC、網(wǎng)易泡泡等,國(guó)外有著名的 MSN(新版改名為 Live Messenger)以及跨平臺(tái) Gaim 等。 第四章討論了整個(gè)聊天系統(tǒng)的設(shè)計(jì),介紹了客戶端 /服務(wù)器模型,并討論了系統(tǒng)的實(shí)現(xiàn)原理和界面設(shè)計(jì)。 第二章介紹了目前國(guó)內(nèi)外聊天系統(tǒng)的現(xiàn)狀,對(duì)國(guó)內(nèi) 和國(guó)外 MSN 聊天軟件做出了概括性的介紹并作了一些比較。選擇 TCP 協(xié)議而不選 UDP 是為了保證信息的可靠性,不同于 UDP 協(xié)議, TCP 要求在獲得可靠連接后才發(fā)送消息。 整個(gè)工程采用結(jié)構(gòu)化的方式進(jìn)行編譯,逐步完善系統(tǒng)功能。登錄后,客戶端各用戶可以發(fā)送文字信息,相互聊天。 論文的主要內(nèi)容 本課題主要研究的是局域網(wǎng)聊天 室 , 該 聊天 室 采用客戶端 /服務(wù)器( C/S)模式和 TCP連接 , 能實(shí)現(xiàn) 用戶在客戶 端與服務(wù)器間 傳遞文字信息 。 武漢理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 2 如今基于局域網(wǎng)的即時(shí)通信工具一般采用 UDP 或者 TCP 協(xié)議體系來(lái)實(shí)現(xiàn) ,開(kāi)發(fā)技術(shù)已經(jīng)比較成熟。它具有信息收發(fā)速度快,保密性好 ,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn) [3]。它的實(shí)現(xiàn)無(wú)需對(duì)企業(yè)原有的局
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1