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

正文內(nèi)容

網(wǎng)絡(luò)視頻聊天軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-11-05 13:59本頁面
  

【正文】 D Books,1999 [21] Michael J. Donahoo, Kenh L. , Second Edition: Practical Guide for Kaufmann, 2020 2020 屆本科生畢業(yè)設(shè)計(jì) 第 24 頁 翻譯部分 英文原文 Study of Video Conference System Based on Floor Transmission Abstract With the fast development of video conference and simulation technology, the research of video conference in distributed interactive simulat。這都有待于對微軟實(shí)時(shí)通訊( RTC)開發(fā)包英文手冊的進(jìn)一步研究和學(xué)習(xí)。 軟件最終可以實(shí)現(xiàn)服務(wù)器模式, IP 模式兩種模式下的點(diǎn)對點(diǎn)視頻聊天和文字聊天功能。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 22 頁 結(jié)論 至此,本文介紹了一個(gè)基于 VC++ 開發(fā)平臺,使用微軟實(shí)時(shí)通訊( RTC)開發(fā)包開發(fā)的視頻通訊軟件的開發(fā)基本過程。 p1 能顯示對方圖像,但無法顯示自己圖像。 3,已經(jīng)開啟一視頻連接的情況下,再進(jìn)行任意一種方式的視頻連接。 測試過程 1, IP 模式下,主機(jī)輸入 地址,進(jìn)行視頻連接。 測試結(jié)果 各種模式下的文字聊天功能都正常。 2,服務(wù)器模式下, p1 與主機(jī), p2 同時(shí)進(jìn)行文字聊天連接。 測試過程 1, IP 模式下, p1 輸入 地址,進(jìn)行文字聊天連接。但異常斷開情況下,服務(wù)器和客戶端無法正常顯示。 4,服務(wù)器正常停止服務(wù)以及異常停止服務(wù),查看各客戶端是否能正常刪除所有用戶。 2, p1 客戶端正常斷開連接,查看主機(jī)與 p2 客戶端是否正常刪除 p1 用戶名。主機(jī)上安裝服務(wù)器端,主機(jī)與 p1, p2 同時(shí)安裝有客 戶端。 COM 組件初始化, RTC 客戶端初始化并注冊處理事件。、 long lEventMask = RTCEF_SESSION_STATE_CHANGE | RTCEF_MESSAGING | RTCEF_MEDIA | RTCEF_INTENSITY | RTCEF_CLIENT。m_pClient)。 組件的初始化配置 CoInitialize(NULL)。 WSAAsyncSelect(m_s, thism_hWnd, WM_CLIENTMSG, FD_CONNECT|FD_READ|FD_WRITE|FD_CLOSE)。 設(shè)置版本并初始化 socket。 WSAStartup(Version,amp。 運(yùn)行環(huán)境的介紹和配置 的初始化配置 WORD Version=MAKEWORD(2,0)。 主窗口模塊接口 HRESULT RTCEventHandle(RTC_EVENT enEvent, IDispatch *pDisp)。 ULONG STDMETHODCALLTYPE Release()。 HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void **ppvObject)。 可連接對象模塊接口 HRESULT Advise(IRTCClient *pClient, HWND hWnd,CWnd *pWnd)。 視頻對話框模塊接口 ShowVideo(long lMediaType, RTC_MEDIA_EVENT_TYPE enType, RTC_MEDIA_EVENT_REASON enReason)。 供主窗口調(diào)用,初始化聊天用戶名 void SetEnd()。 供主窗口調(diào)用,傳送聊天消息。 供主窗口調(diào)用,初始化會話和用戶名。 } 注冊函數(shù),將可連接對象注冊到 RTC組件,用于接收事件。m_dwCookie)。pCP)。pCPC)。 IConnectionPoint * pCP = NULL。 HRESULT hr=NULL。 HRESULT MyEvent::Advise(IRTCClient *pClient, HWND hWnd,CWnd *pWnd) { m_hWnd=hWnd。 記錄父窗口指針 主要函數(shù): HRESULT STDMETHODCALLTYPE Event(RTC_EVENT enEvent, IDispatch *pDisp)。 記錄父窗口句柄 DWORD m_dwCookie。 } 視頻窗口初始化,參數(shù)設(shè)置函數(shù)。 hr=pIVideoSetWindowPosition(0,0,100,100)。 hr=pIVideoput_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS)。 hr=m_pParentClientget_IVideoWindow( RTCVD_PREVIEW, amp。 hr=pIVideoSetWindowPosition(0,0,300,300)。 hr=pIVideoput_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS)。 hr=m_pParentClientget_IVideoWindow( RTCVD_RECEIVE, amp。 HRESULT hr=NULL。 主要函數(shù): void CAVDlg::SetInit(IRTCClient *pParentClient,IRTCSession *pSession) { m_pParentClient=pParentClient。 IRTCSession *m_pSession。 IRTCClient *m_pParentClient。 視頻聊天對話框模塊 主要變量: CWnd m_pParent。 void SetEnd()。 void SetInitUser(CString User)。 void SetMessage(CString Message,CString MessageHeader)。 主要函數(shù): void SetSesAndName(IRTCSession *pSession,CString MyName,int SesN)。 CString m_MyName。 IRTCSession *m_pSession。 文字聊天對話框模塊 主要變量: int m_SesN。 } return hr。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 15 頁 if (FAILED(hr)) { MessageBox(Put Listen Error!)。 m_pEventAdvise(m_pClient,m_hWnd,this)。 return hr。 hr=m_pClientput_EventFilter(lEventMask)。 } m_pClientSetPreferredMediaTypes ( RTCMT_ALL, VARIANT_TRUE )。 MessageBox(Com Init Create Error!)。 } hr = m_pClientInitialize()。 if (FAILED(hr)) { MessageBox(Com O Create Error!)。 } hr = CoCreateInstance (CLSID_RTCClient, NULL, CLSCTX_INPROC_SERVER, IID_IRTCClient, (LPVOID *)amp。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 14 頁 if(FAILED(hr)) { MessageBox(Com Init Error!)。 m_pClient=NULL。 socket事件處理函數(shù)。 事件處理總函數(shù),同時(shí)供可連接對象調(diào)用。 媒體事件處理函數(shù)。 消息事件處理函數(shù)。 會話狀態(tài)改變事件處理函數(shù)。 創(chuàng)建文字聊天對話框。 記錄是否已經(jīng)建立視頻聊天。 記錄是否連接服務(wù)器。 socket對象。 視頻聊天對話框?qū)ο蟆?文本聊天對話框?qū)ο蠼M。 RTC客戶端對象。 記錄文本會話數(shù)。 用戶與服務(wù)器斷開過程同上。并根據(jù)當(dāng)前連接用戶數(shù)目,依次發(fā)送該用戶信息,同時(shí)將其他用戶信息發(fā)送給該用戶。 緊接著為用戶 IP,同樣以“ ”結(jié)尾。 緊接著為用戶 IP,同樣以“ ”結(jié)尾。 } } 以上為 socket事件處理函數(shù),根據(jù)不同的事件類型,調(diào)用相應(yīng)的 2層處理函數(shù)。 break。 case FD_CLOSE: OnNetClose(wParam)。 break。 break。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 12 頁 4 軟件系統(tǒng)實(shí)現(xiàn) 模塊設(shè)計(jì) 服務(wù)端設(shè)計(jì) 服務(wù)端建立 socket對象,建立 TCP監(jiān)聽,接收客戶端的連接,并負(fù)責(zé)將客戶已連接客戶信息發(fā)送給其他客戶。 文字對話框模塊 對象實(shí)例由主窗口在接受到文字聊天按鈕消息后創(chuàng)建,并提供相應(yīng)接口供主窗口調(diào)用來完成初始化。 可連接對象模塊 可連接對象是 COM技術(shù)中處理接口事件的一種方法。視頻對話框主要負(fù)責(zé)視頻聊天事件如音量調(diào)節(jié),視頻窗口大小的布置等工作。 3, RTC事件處理函數(shù)的實(shí)現(xiàn)。 模塊分析 由于服務(wù)端比較簡單,因此只介紹客戶端模塊: 主窗口模塊 主窗口主要負(fù)責(zé)以下幾項(xiàng)工作: 1, socket對象創(chuàng)建以及 socket網(wǎng)絡(luò)連接和事件處理。 通過按鈕事件分別創(chuàng)建文本聊天對話框和視頻聊天對話框并建立相應(yīng)的會話對象進(jìn)行連接。 客戶端 客戶端在主對話框顯示前,先顯示昵稱輸入對話框,然后進(jìn)入主對話 框。 軟件架構(gòu) 服務(wù)端 服務(wù)端比較簡單,只有主對話框。 RTC 以組件對象模型 (COM)的方式發(fā)布,提供了一整套 api 供程序員建立點(diǎn)到點(diǎn)的,多點(diǎn)結(jié)合的多媒體通信程序。這些特性被 Microsoft Windows Messenger 用來顯示實(shí)時(shí)語 音和視頻、即時(shí)消息及其他協(xié)同信息。本文將介紹由這些組件提供的多媒體支持。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 10 頁 微軟實(shí)時(shí)通信 (RTC)開發(fā)包 軟實(shí)時(shí)通信( RTC) API 是一套提供有豐富功能的核心組件。 但在 Windows 持續(xù)發(fā)展時(shí), Visual Basic 開始支持 OCX,也就是 OLE Custom Control,這讓微軟開始思考要如何讓 COM 組件可以跨語言支持,在這樣的要求下,必須要提供一個(gè)一致的接口,以及提供一 組可以調(diào)用接口內(nèi)方法的能力,由于純 COM 組件只能夠支持 C/C++ 的直接訪問,為了要達(dá)到跨語言的能力,在 COM 中必須要支持在外部調(diào)用內(nèi)部方法的機(jī)能,這個(gè)機(jī)能造就了 Invoke()方法,另外為了跨語言的支持, COM 應(yīng)該要提供簡單的組件訪問識別方式,這也就是會有 GetIDsOfNames()的原因,將這些方法組合起來,定義出的必要接口,稱為 IDispatch 接口,所有實(shí)現(xiàn)此接口的,都可以支持跨語言的支持。所有的 COM 組件都要實(shí)現(xiàn) IUnknown,表示每個(gè) COM 組件都有相同的能力。但還是只有Windows 最常使用 COM,且某些功能已被目前的 .NET 平臺取代。 COM 要求軟件組件必須遵照一個(gè)共同的接口,該接口與實(shí)現(xiàn)無關(guān),因此可以隱藏實(shí)現(xiàn)屬性,并且被其他對象在不知道其內(nèi)部實(shí)現(xiàn)的情形下正確的使用。 COM是微軟自 1993年便提出的組件式軟件平臺,用來做進(jìn)程間通信( Interprocess munication, IPC)以及當(dāng)作組件式軟件開發(fā)的平臺。自動化的典型應(yīng)用是微軟的很多軟件中都支持的宏。 由于 Windows 的基于消息的特點(diǎn) ,WINSOCK 和 BSD 套接口相比 ,有如下一些新的擴(kuò)充 : 異步選擇函數(shù) WSAAsyncSelect()允許應(yīng)用程序提名一個(gè)或多個(gè)感興趣的網(wǎng)絡(luò)事件 ,如 FD_READ,FD
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1