【正文】
s local area work chatted the programming mainly to use Visual immediately the C++ programming environment, has realized in LAN the online user39。 服務(wù)器端和客戶端是通過建立 Socket 鏈接來實(shí)現(xiàn)聊天功能。 在設(shè)計(jì)里涉及到了網(wǎng)絡(luò)通信基本原理和 Socket 編程及語(yǔ)音處理 API 技術(shù)。 大學(xué)本科畢業(yè)論文 局域網(wǎng)即時(shí)聊天程序的設(shè)計(jì)與實(shí)現(xiàn) 作 者 院 系 工學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 年 級(jí) 學(xué) 號(hào) 指導(dǎo)教師 答辯日期 成 績(jī) 摘 要 局域網(wǎng)即時(shí)聊天通過進(jìn)行文本聊天和語(yǔ)音聊天來實(shí)現(xiàn)彼此溝通、交流信息。本次局域網(wǎng)即時(shí)聊天程序設(shè)計(jì)主要用了 Visual C++編程環(huán)境,實(shí)現(xiàn)了在 LAN 中在線用戶的文本、語(yǔ)音交互。由于程序是在 TCP/IP 環(huán)境下運(yùn)行,所以分服務(wù)器端和客戶端。 本次設(shè)計(jì)主要著重于語(yǔ)音聊天 部分,在本次論文里主要以語(yǔ)音聊天的流程和各模塊之間的關(guān)系及 Socket 處理為主說明。s text the pronunciation interactive Involved in the design to the work correspondence basic principle and the socket programming and the pronunciation processes the API technology. Because the procedure is in TCP Under the IP environment moves, therefore divides the server end and the client side. The server end and the client side are through establishes Socket to link realizes chats the function. This design mainly emphatically chats in the pronunciation the part, mainly between the flow and various modules relations and the socket processing which chats by the pronunciation primarily explained in this paper. Keywords: Visual C++ programming environment work munication fundamentals Socket programming sound API. 目 錄 摘要 ......................................................................................2 英文摘要 ................................................................................3 第一章:緒論 ..........................................................................6 一、背景介紹 .....................................................................6 二、相關(guān)知識(shí) .........................................................................6 第二章:需求分析 .....................................................................9 一、 可行 性分析 ....................................................................9 二、 需求分析 ............................................................…… . 9 (一) 系統(tǒng)功能要求 ......................................................9 (二) 系統(tǒng)性能要求 ......................................................10 (三) 系統(tǒng)運(yùn)行要求 ......................................................10 第三章:總體設(shè)計(jì) .....................................................................11 一、 層次圖 ..............................................................… ...11 二、 各模 塊的功能及相互關(guān)系 ............................………… ... 11 第四章:詳細(xì)設(shè)計(jì) .................................................................… 13 一、 各模塊具體流程 ......................................................… .13 (一) 通信模塊 ................................................................14 (二) 聲源采集模塊 ...................................……………… .14 (三) 語(yǔ)音數(shù)據(jù)傳輸模塊 ................................……………… 14 (四) 音頻再生模塊 ...........................................………… .. 15 第五章:代碼介紹 .....................................................................17 第六章:測(cè)試 .......................................................................… 23 一、模塊測(cè)試 ......................................................………… 23 二、功能測(cè)試 ............................................................…… ..23 三、 測(cè)試結(jié)果 ......................................................………… ...24 第七章 結(jié)論 ................................................................................25 參考文獻(xiàn) ............................................................................… .26 第一章 緒論 一、 背景介紹 隨著網(wǎng)路的出現(xiàn),它在人們的生活中所扮演的角色越來越多,也越來越重要,人們可以通過這個(gè)空間進(jìn)行網(wǎng)絡(luò)聊天,實(shí)現(xiàn)彼此溝通,交換信息,甚至網(wǎng)絡(luò)聊天工具在部分人的生活中由于傳統(tǒng)的電話通訊手段同等重要的趨勢(shì)。 這次設(shè)計(jì)不僅能實(shí)現(xiàn)文本聊天,還能進(jìn)行語(yǔ)音聊天,語(yǔ)音聊天是一種最先進(jìn)的聊天方式,您只要擁有一只麥克風(fēng)就完全能夠加入進(jìn) 來。 本次局域網(wǎng)即時(shí)聊天程序設(shè)計(jì)主要用了 Visual C++編程環(huán)境,設(shè)計(jì)里還涉及到了網(wǎng)絡(luò)通信基本原理和 Socket 編程及語(yǔ)音處理 API 技術(shù)。 服務(wù)器端和客戶端是通過建立Socket 鏈接來實(shí)現(xiàn)聊天功能。 二、相關(guān)知識(shí) (一) Visual C++ 簡(jiǎn)介 Visual C++是一個(gè)功能強(qiáng)大的可視化應(yīng) 用程序開發(fā)工具,用于 Windows 環(huán)境下 32 位的應(yīng)用程序的開發(fā),是計(jì)算機(jī)界公認(rèn)的最優(yōu)秀的應(yīng)用開發(fā)工具之一。在 Visual C++環(huán)境下,利用Microsoft 的基本類庫(kù) MFC(Microsoft Foundation Class Library),可以使用完全的面向?qū)ο蟮姆椒▉磉M(jìn)行 Windows 95/98/NT 應(yīng)用程序的開發(fā),使得 Windows程序員從大量的復(fù)雜勞動(dòng)中解救出來,體會(huì)到 真正的程序語(yǔ)言的強(qiáng)大功能和良好的靈活性。同傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)方法相比,它縮短軟件的研制時(shí)間,提高軟件的開發(fā)效率,使程序員可以更好地理解和管理龐大而復(fù)雜的程序。與結(jié)構(gòu)化程序設(shè)計(jì)不同的是,面向?qū)ο蟪绦蛟O(shè)計(jì)是用類抽象代表現(xiàn)實(shí)的實(shí)體,用類之間的繼承關(guān)系表示程序設(shè)計(jì)的抽象過程。 Visual C++中集成了大量的最新技術(shù),如 ActiveX、 COM 等技術(shù),程序開發(fā)人員可以緊緊地把握住軟件開發(fā)技術(shù)發(fā)展的方向,開發(fā)出功能強(qiáng)大的應(yīng)用程序。 (二) Socket 及 Window Socket API 簡(jiǎn)介 套接字( Socket)是一種雙向的通信接口,可以通過這個(gè)端口與任何一個(gè)具有 Socket 端口的計(jì)算機(jī)通信,套接字是網(wǎng)絡(luò)通信的基礎(chǔ)。使用 Socket 進(jìn)行網(wǎng)絡(luò)通信必須包含下面的幾種信息:雙方認(rèn)可的協(xié)議,本地主機(jī)的 IP 地址,本地進(jìn)程的協(xié)議端口,對(duì)方主機(jī)的 IP 地址,對(duì)方進(jìn)程的協(xié)議端口。數(shù)據(jù) 報(bào)套接字提供了一種不可靠的、非連接的數(shù)據(jù)包通信方式。流式套接字可以將數(shù)據(jù)按順序無重復(fù)地發(fā)送到目的地,它提供的是一種可靠的、面向連接的數(shù)據(jù)傳輸方式。 VC++對(duì)網(wǎng)絡(luò) 編程的支持有 socket 支持, Winl 支持, MAPI 和 ISAPI 支持等。最早美國(guó)加州大學(xué) Berkeley 分校在 UNIX 下為 TCP/IP 協(xié)議開發(fā)了一個(gè) API,這個(gè) API 就是著名的 Berkeley Socket 接口(套接字)。從表一可以看出,主要的 WinSock API 函數(shù)有哪些。 connect() 要求連接某一 Socket 到指定的網(wǎng)絡(luò)上服務(wù)端 recv() 從面向連接的 Socket 接收信息 send() 使用面向連接的 Socket 發(fā)送信息 WSAAsyncSelect() 要求某一 Socket 有事件 (event) 發(fā)生時(shí)通知使用者 (三) MFC Socket 編程技術(shù) MFC 是對(duì) API 的封裝, MFC 針對(duì) WinSock API 封裝了兩個(gè)類: CAsyncSocket和 Csocket。 MFC 中 Socket 相關(guān)類的繼承關(guān)系如下圖: [圖 1] MFC 中 Socket 相關(guān)類的繼承關(guān)系 CAsyncSocket 對(duì) WinSock API 進(jìn)行了較低程度的封裝,缺省情況下建立的Socket 是異步操作方式,即非阻塞的,因此一些阻塞操作,需要自己動(dòng)手完成。當(dāng)然有許多程序員喜歡使用該類甚至 WinSock API,原因是這些方法具有很大的靈活性,給程序員以較大的發(fā)揮空間。 CSocket 的網(wǎng)絡(luò)操作是同步方式,即阻塞式的。在阻塞任務(wù)執(zhí)行過程中, Windows 線程的消息循環(huán)仍然有效,也就是說 CSocket類的阻塞操作不影響 Windows 的消息循環(huán)。 可行性分析的目的是為了用最小代價(jià)在最短時(shí)間內(nèi)確定問題是否能夠解決。 一、可行性分析 1) 技術(shù)可行性:本系統(tǒng)以 Visual C++為主要編程環(huán)境,再結(jié)合 網(wǎng)絡(luò)通信基 本原理和 Socket 編程及語(yǔ)音處理 API 技術(shù),技術(shù)成熟,可行。 3) 操作可行性:系統(tǒng)硬件為 PC 機(jī),軟件為 Windows NT/2021,而且編程環(huán)境 Visual C++為專業(yè)程序員使用工具,比較易于使用,可行。這一階段是對(duì)系統(tǒng)認(rèn)識(shí)最為全面、準(zhǔn)確、清晰、得體的一個(gè)比較關(guān)鍵的