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

正文內(nèi)容

局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文-wenkub

2022-09-08 16:01:48 本頁面
 

【正文】 返回值 return 。 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 5 7. 消息循環(huán) 初始化工作完成后, WinMain 進(jìn)入所謂的消息循環(huán),使用 while 循環(huán),不斷的 GetMessage,再使用 TranslateMessage 將消息轉(zhuǎn)化,用 DispatchMessage 將消息傳 遞給窗口函數(shù)去處理。 3. 注冊(cè)窗口 RegisterClass()完成注冊(cè)窗口類的功能,設(shè)定窗口的屬性:邊框、顏色、標(biāo) 題、位置等等。程序員必須在一個(gè)所謂的資源描述檔( .rc )中描述它們。下面是進(jìn)行直接的 Win32 SDK方式編程的基本思路或者說是一個(gè)框架。本設(shè)計(jì)在VC 環(huán)境下使用 C++語言編寫而成,其主要功能是完成局域網(wǎng)內(nèi)的 IM 的基本功能,其中包括:文字聊天、語音聊天、視頻聊天、錄音傳輸?shù)裙δ堋? 所有上述軟件都實(shí)現(xiàn)了網(wǎng)絡(luò)即時(shí)的 文字, 視頻語音聊天功能。 本設(shè)計(jì)開發(fā)采用 C/S 結(jié)構(gòu), 即客戶機(jī)與服務(wù)器結(jié)構(gòu), 在 ,使用 C++編程語言進(jìn)行本軟件的開發(fā)。此外 還有傳送語音功能利用此功能可以傳送語音信息。而 UDP 是以數(shù)據(jù)報(bào)的形式,對(duì)拆分后的數(shù)據(jù)的先后到達(dá)順序不做要求的文件傳輸協(xié)議。作為 Windows XP 的一部分, Messenger 整合了操作系統(tǒng)的許多功能, 體現(xiàn)出了微軟的真正實(shí)力所在, 如多種形式的聊天選擇、多人的單窗口討論式交流以及充分的文件與桌面共享功能等。直到現(xiàn)在, ICQ已經(jīng)推出了它的 2020a 版本,在全球即時(shí)通訊市場上占有非常重要的地位。而且,現(xiàn)在不少 IM 軟件還集成了數(shù)據(jù)交換、語音聊天、網(wǎng)絡(luò)會(huì)議、電子郵件的功能 。局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 1 第一章 緒論 課題背景 隨著 Inter 的不斷發(fā)展普及,網(wǎng)絡(luò)通訊成為人們生活中的一部分。 IM 軟件的歷史并不久遠(yuǎn),但是它 的出現(xiàn) ,就立即受到 大家 的喜愛,并風(fēng)靡全球。 目前,國內(nèi)最為流行的即時(shí)通訊軟件是 OICQ(簡稱 )。它的令人耳目一新的中文界面和注冊(cè)方式,連同它強(qiáng)大的功能,著實(shí)吸引了眾多的眼球的注視,此外還有許多有特點(diǎn)的 IM 軟件 。 聊天功能是 IM 軟件最基本、也是最重要的功能,基本上每一種 IM 軟件在這個(gè)功能上的操作都差不多:如果 使用者 想與 自己的 聯(lián)系人進(jìn)行聊天,可以雙擊IM 中聯(lián)系人的頭像,在彈出的對(duì)話框中 輸入 文字信息發(fā)送即可。首先用鼠標(biāo)左鍵單擊在線好友的頭像,選擇 “傳遞語音 ”命令,然后就會(huì)彈出一個(gè)對(duì)話框,錄音以后就可以發(fā)送了。 在本文中 ,將討論一種基于 MFC Socket 的局域網(wǎng)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。這些軟件,在使用方面各有特色,在實(shí)現(xiàn)方面也各有所長,但由于這些產(chǎn)品正在商業(yè)運(yùn)營階段,其實(shí)現(xiàn)方式屬于商業(yè)機(jī)密,具體細(xì)節(jié)不可能得知,但是它在大的方面無非就 是各種利用各種平臺(tái)上的網(wǎng)絡(luò)通信接口,建構(gòu)基于下層 TCP/IP,或者 UDP/IP 協(xié)議的軟件產(chǎn)品。 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 4 第二章 軟件開發(fā)技術(shù)的工具與環(huán)境說明 WIN32 SDK 編程 所謂的 Win32 開發(fā),就是在 C++語言的層面上,直接使用 Win32 API( Application Programming Interface:系統(tǒng)開放出來,給程序員使用的接口。 一個(gè) Windows 程序分為程序代碼和 UI(User Interface 用戶 界面 )資源兩大部分,兩部分最后以 RC 編譯程序編譯為一個(gè)完整的 EXE 文件。 RC 編譯器( )讀取 RC 文件的描述后將所有 UI資源文件集中制作出一個(gè) .Res 資源 文件,再與程序代碼結(jié)合在一起,這才是一個(gè)完整的 Windows 可執(zhí)行文件。 4. 創(chuàng)建窗口 CreateWindow 函數(shù)可以用于創(chuàng)建父窗口、彈出窗口以及子窗口,在創(chuàng)建窗口時(shí)它可以確定窗口類、窗口標(biāo)題、窗口風(fēng)格、大小以及初始化位置。 8. 獲取消息 GetMessage 功能函數(shù)從消息隊(duì)列中獲取消息,如果消息隊(duì)列中沒有消息,此功能函數(shù)則會(huì)一直等得消息。 //返回結(jié)構(gòu)體變量 msg 中的 wParam 的值。 Inter采用的就是 TCP/IP 協(xié)議,網(wǎng)絡(luò)上各種各樣的計(jì)算機(jī)上只要安裝了 TCP/IP協(xié)議,它們之間就能相互通信。這些協(xié)議的示例是: UDP( User Datagram Protocol)協(xié)議、 ICMP( Inter 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 6 Control Message Protocol)協(xié)議、 ARP(地址解析 協(xié)議)和其他一些協(xié)議的協(xié)議組。 Windows Sockets 規(guī)范定義了一套開放的、支持多種協(xié)議的、 Windows 下的網(wǎng)絡(luò)編程接口?,F(xiàn)在 MFC已經(jīng)成為了 Windows 環(huán)境上標(biāo)準(zhǔn)的 C++ API。 MFC在整個(gè) Windows家族中都是兼容的 。開發(fā)者有時(shí)必須直接調(diào)用一些 Windows 函數(shù),例如, SetCursor 和GetSystemMetrics。 MFC 是很龐大的。 2. MFC 應(yīng)用結(jié)構(gòu)類 MFC 應(yīng)用構(gòu)造類有助于一個(gè)框架應(yīng)用的構(gòu)造。 CWnd 可被自己使用,也可以作為派生新類的基類。 4. 繪畫和打印類 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 8 在 Windows 中,所有的圖形輸出都是在一個(gè)可視的繪圖區(qū)上。有兩個(gè)數(shù)據(jù)庫類的集合 ─DAO 和 ODBC─ 它們提供了相似的功能。 7. 其它還有簡單的數(shù)據(jù)類型類、 OLE 類、調(diào)試和異常類、數(shù)組列表和映射類。運(yùn)行的主線程通常由CWinApp 的派生類提供; CWinApp 由 CWinThread 派生。用戶界面線程具有收發(fā)消息的功能,并處理從系統(tǒng)收到的消息。如果你希望改變這個(gè)特性,將m_bAutoDelete 設(shè)為 FALSE。例如,由運(yùn)行時(shí)函數(shù) _beginthreadex 創(chuàng)建的線程不能使用任何 MFC API。如果你需要?jiǎng)?chuàng)建工作者線程,則將指向控制函數(shù)的指針和控制函數(shù)的參數(shù)傳遞給 AfxBeginThread。如果你需要在連續(xù)創(chuàng)建和終止線程的執(zhí)行之間重復(fù)使用 CWinThread 對(duì)象,這種兩步構(gòu)造方法非常有用。 VFW 的一個(gè)關(guān)鍵思想是播放時(shí)不需要專用硬件 。用戶不必專門安裝 VFW, 在安裝 Windows 時(shí),安裝程序會(huì)自動(dòng)地安裝配置視頻所需的組件,如設(shè)備驅(qū)動(dòng)程序、視頻壓縮程序等。 AVICap為應(yīng)用程序提供了一個(gè)簡單的、基于消息的接口,使之能訪問視頻和波形音頻硬件,并能在將視頻流捕獲到硬盤上的過程中進(jìn) 行控制。而 AVICap 在捕獲視頻方面具有一定的優(yōu)勢(shì),它能直接訪問視頻緩沖區(qū),不需要生成中間文件,實(shí)時(shí)性很強(qiáng),效率很高。 實(shí)際 上,捕獲窗類似于標(biāo)準(zhǔn)控制(如按鈕、列表框等)。 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 11 2. 疊加( Overlay)模式:該模式使用硬件疊加進(jìn)行視頻顯 示,疊加視頻的顯示不經(jīng)過 VGA卡,疊加視頻的硬件將 VGA的輸出信號(hào)與其自身的輸出信號(hào)合并,形成組合信號(hào)顯示在計(jì)算機(jī)的監(jiān)視器上。 在視頻 聊天 的應(yīng)用程序中可利用這一點(diǎn)來獲得視頻幀 , 回調(diào)函數(shù)將捕獲的圖像傳到遠(yuǎn)端的計(jì)算機(jī)。例如,SendMessag( hWndCap,WM_CAP_DRIVER_CONNECT,0,0L)與 capDriverConnect( hWndCap,0)的作用相同,都是將創(chuàng)建的捕獲窗同 視頻輸入器件連接起來。 結(jié)構(gòu)體 BITMAPINFO 和點(diǎn)陣圖有關(guān),主要定義了影像獲取之后顯示在屏幕上、存儲(chǔ)在文件中的格式,它包含兩個(gè)成員: BITMAPINFOHEADER bmiHeader 描述影像性質(zhì)的結(jié)構(gòu),其成員記載了影像的大小、顏色深度和壓縮的方式,該成員在Video Capture、 Video Compression Manager 和 DrawDib 函數(shù)庫中,以及有關(guān)于點(diǎn)陣圖的應(yīng)用中; RGBQUAD bmiColors 指向 color table 第一個(gè)元素的位置。二者之間的細(xì)小差別并不重要,通常這兩個(gè)術(shù)語可以互換。 首先啟動(dòng)服務(wù)器端,客戶端通過用戶名和密碼登錄服務(wù)器,服務(wù)器響應(yīng)客戶端登錄并提示有用戶登錄,此時(shí)兩個(gè)用戶就可以進(jìn)行文字聊天,在文字聊天時(shí)信息通過服務(wù)器中轉(zhuǎn),而每個(gè)用戶可以同時(shí)與多個(gè)用戶進(jìn)行文字聊天。 在文字聊天的基礎(chǔ)上,客戶端之間可以進(jìn)行自行處理的語音視頻聊天,運(yùn)用VFW 函數(shù)庫中的函數(shù)對(duì) USB 口輸入的數(shù)字視頻信息進(jìn)行相關(guān)處理 ,比如 :視頻捕獲、影像壓縮以及影像播放等,同時(shí)利用線程來處理聲音部分的錄制、回放等。啟動(dòng)后的應(yīng)用界面要清爽,設(shè)計(jì)要簡單明了,具有較高的易用性。 在程序的設(shè)計(jì)過程中,要求能盡可能多的設(shè)想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應(yīng)的處理,使程序具有較高的容錯(cuò)性能。創(chuàng)建 CSocket 對(duì)象 CSocketServer 來處理服務(wù)器端與客戶端的連接, CSocket 繼承于 CasyncSocket,是 Windows Socket API 的高層抽象。服務(wù)器端調(diào)用 Accept,客戶端調(diào)用 Connect,然后創(chuàng)建一個(gè) CsocketFile 去關(guān)聯(lián) CSocket。每一個(gè) ChatClient 客戶端啟動(dòng)時(shí),利用服務(wù)器內(nèi)定的用戶號(hào)和密碼來登錄。 用戶之間兩兩間進(jìn)行文字聊天時(shí),發(fā)送信息的處理函數(shù)如下: void CChatClientDlg::OnChatBtSend() //發(fā)送信息按鍵 { if( !m_bConnect) { SetMessageBox(請(qǐng)連接服務(wù)器 !\r\n)。 CMesg msg。 return 。 (szUserName)。 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 22 AddReceiver(szUserName , true)。 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 24 圖 語音視頻聊天套接字圖 視頻的捕捉 利用 VFW接口,視頻捕獲可以分為以下幾個(gè)步驟: 1. 建立視頻采集窗口:該窗口用來接收視頻捕捉驅(qū)動(dòng)程序傳來的數(shù)據(jù)和消息。一般視頻驅(qū)動(dòng)程序允許設(shè)置的參數(shù)包括視頻源選擇、視頻格式、視頻顯示格式等。 窗口類為捕獲數(shù)字視頻流及其相關(guān)操作提供了很大的方便,靈活編寫其中的回調(diào)函數(shù)可滿足實(shí)時(shí)視頻傳輸?shù)男枰?,例如?yīng)用程序可直接從 緩沖中取得數(shù)字視頻并對(duì)其進(jìn)行壓縮編碼后實(shí)時(shí)地傳到遠(yuǎn)端的客戶端。 基本的捕獲設(shè)置包括設(shè)置捕獲速度(每秒捕獲多 少幀)、是否同時(shí)捕獲聲頻、捕獲緩沖、允許最大丟失多少幀和是否使用 DOS內(nèi)存,以及使用鍵盤的哪個(gè)鍵或鼠標(biāo)的哪個(gè)鍵來終止捕獲等內(nèi)容,這些設(shè)置使用 CAPTUREPARAMS 結(jié)構(gòu)來描述,capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置,然后改變此結(jié)構(gòu)的成員變量,再使用 capCaptureSetSetup 宏設(shè)置新的設(shè)置。使用 capCaptureGetSetup 宏來得到當(dāng)前的設(shè)置值。 //得到當(dāng)前的捕獲速度 = FALSE。 = 80。 } // Set Video Format capGetVideoFormat(m_capwnd,amp。 BOOL ret=capSetVideoFormat(m_capwnd,amp。 } //終止一個(gè)捕獲任務(wù) BOOL VideoCapture::StopCapture() { capCaptureStop(m_capwnd)。 } 局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì) 27 窗口的捕捉 在捕獲前必須創(chuàng)建一個(gè)捕獲窗口( Capture Widnow),下 面介紹有關(guān)捕獲窗口的情況:創(chuàng)建一個(gè) AVICap 捕獲窗口,用 capCreateCaptureWindow 函數(shù)并返回一個(gè)句
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1