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

正文內(nèi)容

局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文(參考版)

2024-09-01 16:01本頁面
  

【正文】 [16] 吳志軍,《 Visual C++視頻 會議開發(fā)技術(shù)與實例 [M]》 ,北京:人民郵電出版社, 2020年。 [14] Microsoft公司 ,《 MFC類庫詳解 》。 [12] 楊小平,編著《 Vusal C++項目案例導(dǎo)航》 ,北京:科學(xué)出版社, 2020年。 [10] Andrew ,Vrije Universiteit,Amsterdam,The Netherlands 著 ,潘愛 民譯 ,《 計算機網(wǎng)絡(luò)(第 4版) 》 ,北京 :清華大學(xué) 出版社 ,2020年。 索科洛夫斯基 ,《 A TCPIP Tutorial RFC 1180》。 [7] Beck Zaratian編 著,希望圖書創(chuàng)作室譯 ,《 Microsoft Visual C++ 南 》 ,北京: 北京希望電腦公司 , 1998年。 [5] 孫鑫 ,余安萍 編著 《 VC++深入詳解 》 ,北京: 電子工業(yè)出版社 , 2020年。 [3] 黃強 編 著 《 WINDOWS網(wǎng)絡(luò)編程 》,北京: 人民郵電出版社 , 2020年 ,P12。 最后,想在百忙之中評審本文的各位專家、老師表示衷心的感謝! 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 37 參考文獻(xiàn) [1] 侯俊杰 編著 《 深入淺出 MFC(第二版)》 ,湖北 :華中科技大學(xué)出版社 , 2020 年, P15。 在此,我真誠的向給過我?guī)椭睦蠋熀屯瑢W(xué)表示感謝。 在設(shè)計完成過程中,還得到了其他老師和許多同學(xué)的熱心幫助。 整個設(shè)計工作是在楊著老師的悉心指導(dǎo)下完成的。 總的來說,通過這次局域網(wǎng)聊天 系統(tǒng)的開發(fā),我重新學(xué)習(xí)了 VC++開發(fā)技術(shù),同時也掌握了一些重要的編程思想,我的程序設(shè)計能力也上了一個新的臺階。在理論學(xué)習(xí),分析和組織程序結(jié)構(gòu)以及具體的實現(xiàn)等整個過程中,我體會到了編寫程序的酸甜苦辣。通過老師的致電和查閱資料等得到了解決,圓滿的完成了整個程序的開發(fā)工作,同時積累了很多解決經(jīng)驗。但 最后通過自己查找資料,以及向同學(xué)和指導(dǎo)老師咨詢,使這些出現(xiàn)的問題一一得到解決,隨著系統(tǒng)的逐步完善,我的編程經(jīng)驗在增長,能力也在提升。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 35 畢業(yè)設(shè)計體會 系統(tǒng)開發(fā)過程是痛苦的,從開發(fā)環(huán)境的配置,到程序的測試,各種莫名其妙的問題一個接一個,整天都被異常與錯誤困擾。 2. 技術(shù)方面的改進(jìn)。 4. 本程序在 Windows 7 下運行不是太穩(wěn)定。 2. 本設(shè)計只 是實現(xiàn)了基本的通信功能,若要將其應(yīng)用到實際中,要求就高了,模塊也就多了,所要考慮的東西也就更復(fù)雜了。 現(xiàn)在,聊天工具已經(jīng)成熟,本設(shè)計只是實現(xiàn)了聊天工具里的一小部分功能。 2.實現(xiàn)了點對點的語音視頻聊天功能。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 34 結(jié)論 本設(shè)計研究了一個采用 Microsoft Visual C++ 編程技術(shù)開發(fā)的聊天系統(tǒng),最終實現(xiàn)了局域網(wǎng)聊天功能。 綜上所訴,該設(shè)計的功能可以正常使用,無異?,F(xiàn)象出現(xiàn),但是有一定的局限性,比如說在 Windows 7 環(huán)境下使用該程序。在 Windows 7 下測試視頻聊天的時候,當(dāng) A客戶端向 B 客戶端發(fā)送視頻請求后, B客戶端接受請求,有可能會發(fā)生 B客戶端窗口 壞死,這是由于 Visual C++與 Windows 7 不兼容導(dǎo)致的,如果 B客戶端在接受請求后,窗口并未壞死,那么在視頻的時候,只能看見本地視頻的窗口,看不見 A客戶端的視頻窗口,這也是由于 Visual C++ 與 Windows 7 不兼容導(dǎo)致的。使用后的結(jié)論為:客戶端與服務(wù)器端的信息交流、客戶端之間信息發(fā)送與接收、在線用戶列表的維護(hù)三項基本功能運行正常。此外, AB 可以進(jìn)行語音視頻聊天 。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 33 第五章 測試 測試 拷貝客戶端與服務(wù)器端到兩臺配置如下的計算機上: 硬件環(huán)境: CPU: Intel PentiumⅢ或者 Pentium4 1GHz 內(nèi)存: 256MB 以上 硬盤: 20GB 以上 其它:分別配有攝像頭、麥克風(fēng)、音響或者耳機等外部設(shè)備 軟件環(huán)境: Windows XP 操作系統(tǒng) 分別運行兩個客戶端和一個服務(wù)器端,使用 A客戶端向 B客戶端發(fā)送消息,A可以正常發(fā)送消息并可以顯示消息, B可以接收到信息并顯示。 處理視頻傳輸如下圖。 為了在接收端能夠方便地提取出一幀,提出如 表 建幀。通過 Winsock 實現(xiàn)壓縮后的視頻數(shù)據(jù)在局域網(wǎng)中的實時傳輸,接收完的數(shù)據(jù)交給Divx 解碼器 , 以幀的格式解壓 , 最后實現(xiàn)視頻顯示。 return MMSYSERR_NOERROR。 return mmResult。 //寫數(shù)據(jù) (放音 ) if(mmResult){delete lpHdr。 return mmResult。 //為回放設(shè)備準(zhǔn)備內(nèi)存塊 if(mmResult) { delete lpHdr。 lpHdrdwBufferLength = length。 CopyMemory(p,(char*)lParam,length)。} ZeroMemory(lpHdr,sizeof(WAVEHDR))。 if(!p) {delete lpHdr。 if(!lpHdr) return FALSE。 if(length=0) return FALSE。 int length=(int) wParam。 MMRESULT mmResult = FALSE。 } return TRUE。 } mmReturn = ::waveInStart(m_hRecord)。 i++) { //為錄音設(shè)備準(zhǔn)備緩存 mmReturn = ::waveInPrepareHeader(m_hRecord, rechead[i], sizeof(WAVEHDR))。 if(mmReturn==MMSYSERR_NOERROR ) { for(int i=0。m_WaveFormatEx,::GetCurrentThreadId(),0, CALLBACK_THREAD)。 //打開錄音設(shè)備 MMRESULT mmReturn = ::waveInOpen( amp。 語音錄制 在音頻的錄制和播放時,采用的用戶界面線程來處理,是 CWinThread 對象,根據(jù)前面線程的介紹,一步一步的來實現(xiàn)。視頻對話框都在視頻捕獲驅(qū)動中定義。 } return TRUE。 capDriverDisconnect(m_capwnd)。 return FALSE。 // (\n Unable to connect driver to the window)。amp。amp。amp。 // Connect to webcam driver //使一個捕獲窗口與一個捕獲設(shè)備連接或關(guān)聯(lián) ret3 = capDriverConnect(m_capwnd,index)。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 28 //Change destroy functions also........ ret1 = capSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo)。 if(!m_capwnd) { return FALSE。 TRACE(VideoCapture::Initialize\n)。 int index=0。該尺寸由視頻捕獲設(shè)備的格式和視頻對話框決定。由于其信息是動態(tài)的,每當(dāng)捕獲的視頻流的尺寸發(fā)生改變,程序應(yīng)該在獲取捕獲設(shè)備的視頻格式以后及時進(jìn)行刷新。 捕獲窗口的狀態(tài),用 capGetStatus 函數(shù)來獲得當(dāng)前捕獲窗口的狀態(tài),得到一個 CAPSTATUS 結(jié)構(gòu)的拷貝。再利用 capDriverGetName 函數(shù)來得到捕獲設(shè)備的名稱將獲得的版本發(fā)送到 capDriverGetVersion。 } 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 27 窗口的捕捉 在捕獲前必須創(chuàng)建一個捕獲窗口( Capture Widnow),下 面介紹有關(guān)捕獲窗口的情況:創(chuàng)建一個 AVICap 捕獲窗口,用 capCreateCaptureWindow 函數(shù)并返回一個句柄。 Sleep(500)。 } //終止一個捕獲任務(wù) BOOL VideoCapture::StopCapture() { capCaptureStop(m_capwnd)。 // (\n Video parameters set properly)。 BOOL ret=capSetVideoFormat(m_capwnd,amp。 =IMAGE_WIDTH。 } // Set Video Format capGetVideoFormat(m_capwnd,amp。CapParms,sizeof(CapParms))) { // (\n Failed to set the capture parameters )。 = 80。 = TRUE。 //得到當(dāng)前的捕獲速度 = FALSE。 capCaptureGetSetup(m_capwnd,amp。使用 capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置值。 設(shè)置終止捕獲,同樣通過使用 capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置,當(dāng)前按鍵設(shè)置保存在 CAPTUREPARAMS 結(jié)構(gòu)的 vKeyAbort 成員中,鼠標(biāo)設(shè)置保存在fAbortLeftMouse 和 fAbortRightMouse 成員中,通過修改可以設(shè)置新的熱健或者鼠標(biāo)左右鍵,修改完成后,使用 capCaptureSetSetup 宏來進(jìn)行更新。 基本的捕獲設(shè)置包括設(shè)置捕獲速度(每秒捕獲多 少幀)、是否同時捕獲聲頻、捕獲緩沖、允許最大丟失多少幀和是否使用 DOS內(nèi)存,以及使用鍵盤的哪個鍵或鼠標(biāo)的哪個鍵來終止捕獲等內(nèi)容,這些設(shè)置使用 CAPTUREPARAMS 結(jié)構(gòu)來描述,capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置,然后改變此結(jié)構(gòu)的成員變量,再使用 capCaptureSetSetup 宏設(shè)置新的設(shè)置。然后再通過 Winsock 將壓縮后的數(shù)據(jù)發(fā)送到另一客戶端。 窗口類為捕獲數(shù)字視頻流及其相關(guān)操作提供了很大的方便,靈活編寫其中的回調(diào)函數(shù)可滿足實時視頻傳輸?shù)男枰鐟?yīng)用程序可直接從 緩沖中取得數(shù)字視頻并對其進(jìn)行壓縮編碼后實時地傳到遠(yuǎn)端的客戶端。 6. 結(jié)束捕捉:結(jié)束捕捉是應(yīng)該有一些清除工作。一般視頻驅(qū)動程序允許設(shè)置的參數(shù)包括視頻源選擇、視頻格式、視頻顯示格式等。 3. 視頻捕獲初始化。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 24 圖 語音視頻聊天套接字圖 視頻的捕捉 利用 VFW接口,視頻捕獲可以分為以下幾個步驟: 1. 建立視頻采集窗口:該窗口用來接收視頻捕捉驅(qū)動程序傳來的數(shù)據(jù)和消息。 } 下圖為兩個用戶之間的文字聊天以及服務(wù)器上的顯示 圖 用戶 heteng 對 aaa發(fā)送的文字信息 圖 用戶 aaa接受到 heteng所發(fā)出的文字信息 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1