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

正文內(nèi)容

局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文-文庫吧資料

2024-09-05 16:01本頁面
  

【正文】 23 圖 服務(wù)器所顯示兩個用戶之間的文字對話 語音視頻聊天的實現(xiàn) 在實現(xiàn)語音視頻聊天時 ,采用的是基于 UDP 套接字的點對點模式 ,即用戶與用戶之間的數(shù)據(jù)傳輸。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 22 AddReceiver(szUserName , true)。 m_csClientSendM(amp。 (szUserName)。 return 。 return 。 GetDlgItemText(IDC_USERNAME,szUserName)。 CMesg msg。 } CString str。 用戶之間兩兩間進行文字聊天時,發(fā)送信息的處理函數(shù)如下: void CChatClientDlg::OnChatBtSend() //發(fā)送信息按鍵 { if( !m_bConnect) { SetMessageBox(請連接服務(wù)器 !\r\n)。在對鏈表進行操作的同時,要更新 list 列表中的信息。每一個 ChatClient 客戶端啟動時,利用服務(wù)器內(nèi)定的用戶號和密碼來登錄。 圖 TCP 套接字的運用圖 文字聊天的實現(xiàn) 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 20 ChatServer 服務(wù)器運行時,利用一個 CSocket 對象 CSocketServer 啟動服務(wù)器,用函數(shù) gethostname 來獲得服務(wù)器端主機名和 IP,同時在服務(wù)器對話框中顯示服務(wù)器 IP,并將分配的固定端口號 8123 顯示在對話框中。服務(wù)器端調(diào)用 Accept,客戶端調(diào)用 Connect,然后創(chuàng)建一個 CsocketFile 去關(guān)聯(lián) CSocket。要使用 CSocket 對象,首先要調(diào)用構(gòu)造函數(shù),然后調(diào)用 Create函數(shù)創(chuàng)建一個 Socket 句柄。創(chuàng)建 CSocket 對象 CSocketServer 來處理服務(wù)器端與客戶端的連接, CSocket 繼承于 CasyncSocket,是 Windows Socket API 的高層抽象。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 17 界面設(shè)計 服務(wù)器登錄界面 圖 服務(wù)器登錄界面 用戶登錄界面 圖 用戶 登錄界面 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 18 用戶登陸后界面 圖 用戶登錄后的界面 第四章 詳細設(shè)計及編碼實現(xiàn) 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 19 TCP 套接字的運用 在文字聊天時 ,服務(wù)器端與客戶端的連接是采用的 TCP 套接節(jié)進行連接。 在程序的設(shè)計過程中,要求能盡可能多的設(shè)想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應(yīng)的處理,使程序具有較高的容錯性能。 在遇到不可預知的故障時能安全退出。啟動后的應(yīng)用界面要清爽,設(shè)計要簡單明了,具有較高的易用性。語音視頻聊天流程圖如圖 。 在文字聊天的基礎(chǔ)上,客戶端之間可以進行自行處理的語音視頻聊天,運用VFW 函數(shù)庫中的函數(shù)對 USB 口輸入的數(shù)字視頻信息進行相關(guān)處理 ,比如 :視頻捕獲、影像壓縮以及影像播放等,同時利用線程來處理聲音部分的錄制、回放等。 文字聊天流程圖如圖 。 首先啟動服務(wù)器端,客戶端通過用戶名和密碼登錄服務(wù)器,服務(wù)器響應(yīng)客戶端登錄并提示有用戶登錄,此時兩個用戶就可以進行文字聊天,在文字聊天時信息通過服務(wù)器中轉(zhuǎn),而每個用戶可以同時與多個用戶進行文字聊天。它包含: C++編譯器、調(diào)試器、應(yīng)用程序框架 生成器、項目管理器、設(shè)計和實現(xiàn)菜單等資源的編輯器等等。二者之間的細小差別并不重要,通常這兩個術(shù)語可以互換。 Video Compression Functions 主要記錄壓縮功能相關(guān)的信息,其包含的比較重要的成員: ICLocate 輸入指向壓縮前后 BITMAPINFO 的指標,以及欲使用的codecs; ICCompressorChoose 呼叫一個系統(tǒng)內(nèi)建的對話,其中包含所有可能使用的 codes 以及其相關(guān)參數(shù); ICCompressQuery 詢問 pressor 是否支持某種壓縮方式,輸入?yún)?數(shù)為 pressor handle 及指向壓縮前后 BITMAPINFO 的指標,此函數(shù)會傳回詢問結(jié)果; ICCompressBegin要求系統(tǒng)準備相關(guān)資源以供壓縮之用;ICCompress 壓縮某個 frame; ICCompressEnd 歸還相關(guān)資源給系統(tǒng);ICDompressQuery 詢問 depressor 是否支持某種解壓縮方式;ICDompressBegin 要求系統(tǒng)準備相關(guān)資源以供解壓縮之用; ICDompress 解壓縮某一個 frame; ICDompressEnd歸還相關(guān)資源給系統(tǒng); ICDompressFree歸還 COMPVARS所占用的資源。 結(jié)構(gòu)體 BITMAPINFO 和點陣圖有關(guān),主要定義了影像獲取之后顯示在屏幕上、存儲在文件中的格式,它包含兩個成員: BITMAPINFOHEADER bmiHeader 描述影像性質(zhì)的結(jié)構(gòu),其成員記載了影像的大小、顏色深度和壓縮的方式,該成員在Video Capture、 Video Compression Manager 和 DrawDib 函數(shù)庫中,以及有關(guān)于點陣圖的應(yīng)用中; RGBQUAD bmiColors 指向 color table 第一個元素的位置。 Video Capture主要提供下列功能:連接驅(qū)動程序;獲取影像、聲音資料,并顯示在屏幕上或者是存成 AVI 文件;獲取單張影像顯示在屏幕上,拷貝至剪貼簿,或者是存成 DIB( DeviceIndependent Bitmap)文件。例如,SendMessag( hWndCap,WM_CAP_DRIVER_CONNECT,0,0L)與 capDriverConnect( hWndCap,0)的作用相同,都是將創(chuàng)建的捕獲窗同 視頻輸入器件連接起來。 視頻捕獲編程也要用到涉及視頻捕獲的結(jié)構(gòu)、宏、消息和函數(shù)。 在視頻 聊天 的應(yīng)用程序中可利用這一點來獲得視頻幀 , 回調(diào)函數(shù)將捕獲的圖像傳到遠端的計算機。 靈活編寫 AVICap 提供的回調(diào)函數(shù)還可滿足一些特殊需求 。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 11 2. 疊加( Overlay)模式:該模式使用硬件疊加進行視頻顯 示,疊加視頻的顯示不經(jīng)過 VGA卡,疊加視頻的硬件將 VGA的輸出信號與其自身的輸出信號合并,形成組合信號顯示在計算機的監(jiān)視器上。 AVICap 在顯示視頻時提供的兩種模式 : 1. 預覽( Preview)模式:該模式使用 CPU資源,視頻幀先從捕獲硬件傳到系統(tǒng)內(nèi)存,接著采用 GDI 函數(shù)在捕獲窗中顯示。 實際 上,捕獲窗類似于標準控制(如按鈕、列表框等)。 在視頻捕獲之前需要創(chuàng)建一個捕獲窗,所有的捕獲操作及其設(shè)置都以它為基礎(chǔ)。而 AVICap 在捕獲視頻方面具有一定的優(yōu)勢,它能直接訪問視頻緩沖區(qū),不需要生成中間文件,實時性很強,效率很高。雖然MCI也提供數(shù)字視頻服務(wù),比如 , 它為顯示 AVI文件的視頻提供了 AVIVideo 命令集,為視頻疊加提供了 overlay 命令集,但這些命令主要是基于文件的操作,不能滿足實時地直接從視頻緩存中 獲 取數(shù)據(jù)的要求 。 AVICap為應(yīng)用程序提供了一個簡單的、基于消息的接口,使之能訪問視頻和波形音頻硬件,并能在將視頻流捕獲到硬盤上的過程中進 行控制。 Visual C++在支持 VFW 方面提供有 、 、 等庫 。用戶不必專門安裝 VFW, 在安裝 Windows 時,安裝程序會自動地安裝配置視頻所需的組件,如設(shè)備驅(qū)動程序、視頻壓縮程序等。它引進了一種叫 AVI的文件標準,該標準未規(guī)定如何對視頻進行捕獲、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲在硬盤上, 以及 在 AVI 文件中交替存儲視頻幀和與之相匹配的音頻數(shù)據(jù)。 VFW 的一個關(guān)鍵思想是播放時不需要專用硬件 。其它還有掛起線程、結(jié)束線程等函數(shù),將不再一一詳解。如果你需要在連續(xù)創(chuàng)建和終止線程的執(zhí)行之間重復使用 CWinThread 對象,這種兩步構(gòu)造方法非常有用。 AfxBeginThread線程將返回指向新的 CWinThread對象的指針。如果你需要創(chuàng)建工作者線程,則將指向控制函數(shù)的指針和控制函數(shù)的參數(shù)傳遞給 AfxBeginThread。 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 9 根據(jù)你需要工作者線程還是用戶界面線程,有兩種調(diào)用 AfxBeginThread 的格式。例如,由運行時函數(shù) _beginthreadex 創(chuàng)建的線程不能使用任何 MFC API。框架使用的用來維護與線程相關(guān)的信息的線程局部數(shù)據(jù)由 CWinThread 對象管理。如果你希望改變這個特性,將m_bAutoDelete 設(shè)為 FALSE。其它用戶界面線程也可由 CWinThread 直接派生。用戶界面線程具有收發(fā)消息的功能,并處理從系統(tǒng)收到的消息。 CWinThread 支持兩種線程類型:工作者線程和用戶界面線程。運行的主線程通常由CWinApp 的派生類提供; CWinApp 由 CWinThread 派生。 Visual C++ 中,使用 MFC 類庫也實現(xiàn)了多線程的程序設(shè)計,使得多線程編程更加方便。 7. 其它還有簡單的數(shù)據(jù)類型類、 OLE 類、調(diào)試和異常類、數(shù)組列表和映射類。還有創(chuàng)建 ISAPI 擴展 DLL 的類的集合和操作 Windows 套接字的類的集合。有兩個數(shù)據(jù)庫類的集合 ─DAO 和 ODBC─ 它們提供了相似的功能。 MFC 提供了封裝不同 DC 類型的類,也提供了對 Windows 繪圖工具,例如位圖、刷子、調(diào)色板和筆的封裝。 4. 繪畫和打印類 局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計 8 在 Windows 中,所有的圖形輸出都是在一個可視的繪圖區(qū)上。 CWnd 是所有窗口的基類。 CWnd 可被自己使用,也可以作為派生新類的基類??梢栽诳蚣苤刑顚憣τ趹?yīng)用特定的功能。 2. MFC 應(yīng)用結(jié)構(gòu)類 MFC 應(yīng)用構(gòu)造類有助于一個框架應(yīng)用的構(gòu)造。事實上,你可能只需要使用其中的十多個不同的類,就可以建立一個非常漂亮的程序。 MFC 是很龐大的。 MFC 類庫 MFC 類庫是一個很大的、擴展了的 C++類層次結(jié)構(gòu),與傳統(tǒng)上使用 C 語言直接訪問 Windows API 相反, MFC已經(jīng)包含和壓縮了所有標準的 “ 樣板文件 ” 代碼,這些代碼是所有用 C 編寫的 Windows 程序所必需的,因此用 MFC 編寫的程序要比用 C 語言編寫的程序小得多,當然 MFC 所編寫的程序的性能也毫無損失。開發(fā)者有時必須直接調(diào)用一些 Windows 函數(shù),例如, SetCursor 和GetSystemMetrics。而且,可以將直接調(diào)用 Windows API 與調(diào)用類庫自由地混合起來使用。 MFC在整個 Windows家族中都是兼容的 。同時,在 Visual C++內(nèi)部也內(nèi)建了很多對 MFC 的非常實用的東西,例如類向?qū)н@樣的支持,減少軟件開發(fā)的時間,使用類向?qū)Э梢陨蓮?hello world 這樣的簡單程序到活動文檔服務(wù)器這樣 的復雜程序。現(xiàn)在 MFC已經(jīng)成為了 Windows 環(huán)境上標準的 C++ API。 現(xiàn)在的 Windows Sockets
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1