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

正文內(nèi)容

基于netbios的聊天工具畢業(yè)論文-在線瀏覽

2024-08-03 08:02本頁面
  

【正文】 ,而 winsock 只能在 tcp/ip 上面運行。11 語音聊天技術(shù)語音聊天的關(guān)鍵技術(shù)是語音的采集與播放,語音的壓縮解壓縮以及語音的傳送。下面對語音的采集與播放和語音的壓縮解壓縮技術(shù)作一下介紹: 語音的采集與播放在 windows 下,有兩種編程接口可以實現(xiàn)語音的采集與播放,這就是DirectSound 和 waveX 函數(shù)。DirectSound 允許進行波型聲音的捕獲、重放,也可以通過控制硬件和相應(yīng)的驅(qū)動來獲得更多的服務(wù)。? 設(shè)定應(yīng)用程序的聲音設(shè)備優(yōu)先級別方式,一般為 DSSCL_NORMAL,利用SetCooperativeLevel 函數(shù);? 如果是播放聲音,則利用12IDirectSound 創(chuàng)建聲音緩沖區(qū)對象,利用 IdirectSound 的方法CreateSoundBuffer 來創(chuàng)建,然后載入聲音數(shù)據(jù)播放及停止。2 WaveX 技術(shù)Waveform Functions 是 windows 提供一組較早的波形聲音的采集與播放的 API,主要包含了一組函數(shù),對輸入設(shè)備的操作以 waveIn 打頭,對輸出設(shè)備的操作以 waveOut 打頭。說完這些函數(shù),不得不提的是為以上幾個函數(shù)做準備工作的函數(shù)(注意配對使用), waveInOpen 和 waveInClose 配對 ( waveInOpen 里面指定音頻的格式,比方說立體聲 和 16 位音質(zhì)等); waveInPrepareHeader 和 waveInUnprepareHeader 配對( waveInPrepareHeader 里面指定用來錄音緩沖的大小和首地址),緊跟著 waveInPrepareHeader 要例行公事調(diào)用 waveInAddBuffer。3 兩種技術(shù)的比較? WaveX 技術(shù)是較早的一組支持聲音操作的 API,功能有限。? 盡管 DirectSound 技術(shù)必將替代 waveX 技術(shù),但是 waveX 技術(shù)也能夠解決一些簡單的任務(wù),在這方面,waveX 技術(shù)還是挺有效的。 語音的壓縮與解壓縮音頻和視頻數(shù)據(jù)是大多數(shù)多媒體向用戶提供信息的主要方式,這些數(shù)據(jù)一般具有較高的采樣速率,如果不經(jīng)過壓縮的話,保存他們需要消耗大量的存儲空間,在網(wǎng)絡(luò)上傳輸?shù)男室埠艿?。?windows 中,引入了 ACM(Audio Compression Manager,音頻壓縮管理器),負責管理系統(tǒng)中的所有音頻編碼譯碼器(CODECs) 。如今流行的編碼有以下幾種:14PCM,WAVE,MP3,OGG,MPC,MP 3PRO,WMA,RA,APE,TRUESPEECH 等編碼方式。 文件傳輸技術(shù)FTP 是 Ier 上文件傳輸?shù)耐ㄓ梅椒?。FTP 通過兩個 TCP 連接傳輸一個文件,這兩個連接分別為控制連接和數(shù)據(jù)連接。數(shù)據(jù)連接是傳輸數(shù)據(jù)的全雙工連接。對于本聊天工具文件傳輸?shù)膽?yīng)用,由于是點對點的單文件傳輸,形式和服務(wù)較簡單,因此在兩點之間只建立一條連接,控制連接和數(shù)據(jù)連接合為一條連接,并且利用已有的 NETBIOS 通信傳輸控制命令和文件數(shù)據(jù)。15 多線程技術(shù)多線程函數(shù)是 Win 32 的一個重要方面,其編程技術(shù)較為新穎,在程序設(shè)計思路上不同于傳統(tǒng)的模塊結(jié)構(gòu)化方法,比一般的面向?qū)ο蟮乃悸芬草^為復(fù)雜,尤其是對于多處理器平臺的處理更為復(fù)雜。線程的創(chuàng)建比較簡單,可以利用 CreateThread 或者 AfxBeginThread 來實現(xiàn),終止線程可以用TerminateThread 來實現(xiàn)。多線程的設(shè)計關(guān)鍵之處在于線程之間的同步。首先,建立互斥體對象,得到句柄:HANDLE CreateMutex( )。共享資源訪問完后,釋放對互斥體對象的占用: ReleaseMutex(hMutex)。當互斥16體對象被一個線程占用時,若有另一線程想占用他,則必須等到前一線程釋放后才能成功。 在操作共享資源前,打開信號;完成操作后,關(guān)閉信號。首先,創(chuàng)建信號對象: HANDLE CreateSemaphore( )。然后,在線程的訪問共享資源之前調(diào)用 WaitForSingleObject。信號對象允許同時對多個線程共享資源的訪問,在創(chuàng)建對象時指定最大可同時訪問的線程數(shù)。其中,0≤計數(shù)器值≤創(chuàng)建時指定的最大值。假定一個應(yīng)用在創(chuàng)建一個信號對象時,將其計數(shù)器的初始值設(shè)為 0,這樣就阻塞了其他線程,保護了資源。3 利用事件對象的狀態(tài),進行線程對共享資源的訪問。事件分為手工釋放和自動釋放。4 設(shè)置排斥區(qū)17 在排斥區(qū)中異步執(zhí)行時,他只能在同一進程的線程之間共享資源處理。當一個線程使用排斥區(qū)時,調(diào)用函數(shù):EnterCriticalSection 或者 TryEnterCriticalSection;當要求占用、退出排斥區(qū)時,調(diào)用函數(shù): LeaveCriticalSection。互斥體對象、信號對象和事件對象也可以用于進程間的線程同步操作 系統(tǒng)方案說明 可選擇的其他系統(tǒng)方案1 基于 winsock 的通信聊天工具該方案采用 winsock 作為底層網(wǎng)絡(luò)通信技術(shù)來實現(xiàn)聊天室聊天,廣播聊天,二人私聊和文件傳輸。由于18winsock 對廣播傳輸,建立連接傳輸,數(shù)據(jù)報傳輸?shù)闹С?,該方案是可行的。Directsound 語音技術(shù)作為 directx 的一個組件,已經(jīng)非常的成熟,可以在 API 層面上進行錄制聲音,并把聲音數(shù)據(jù)錄制到內(nèi)存中去用于遠程傳輸。3 基于網(wǎng)頁形式的聊天工具該方案利用現(xiàn)在成熟的網(wǎng)頁技術(shù)來實現(xiàn)聊天工具的開發(fā)。因此工作重心轉(zhuǎn)到語音聊天的開發(fā)和服務(wù)器端的開發(fā)。 本系統(tǒng)的方案1 系統(tǒng)說明本聊天工具最終采取的方案為 NETBIOS+WAVEX+,即底層通信技術(shù)采用 NETBIOS 通信,語音技術(shù)采用 WAVEX API,開發(fā)工具為19。要求該聊天工具可以實現(xiàn)服務(wù)器自建,幾種聊天方式,文件傳輸,語音聊天等功能。? 沒有對視頻,圖像聊天的支持20 系統(tǒng)任務(wù)概述利用 NETBIOS 通信技術(shù)以及 WAVEX 語音技術(shù)實現(xiàn)一個能夠廣播聊天,聊天室聊天,二人私聊,語音聊天以及文件傳輸?shù)囊粋€聊天工具。? 可以修改個人的資料,保存讀取個人的資料。? 可以選擇一個聊天房間,也即選擇一個服務(wù)器。? 可以刷新房間列表。? 可以選擇聊天的對象,也可以公開聊天。? 可以和某人私聊,別人看不到。? 可以設(shè)置自動回復(fù)的消息。? 聊天內(nèi)容為純文本方式。21? 可以選擇通信方式(數(shù)據(jù)報方式,阻塞或非阻塞方式)。? 可以在兩個人的私有聊天室基礎(chǔ)上實現(xiàn)語音聊天。 系統(tǒng)其他要求 系統(tǒng)性能要求1 時間特性? 對于公共聊天和聊天室聊天,要求響應(yīng)每條消息的時間不超過 1 秒鐘,否則用戶將感到這個聊天工具反應(yīng)遲鈍。? 對于語音聊天,要求語音的延遲不超過 5 秒鐘。223 文件傳輸速度要求盡量提高傳輸速度,不能低于 1kb/s。 系統(tǒng)環(huán)境要求1 硬件要求? 安裝了網(wǎng)卡,并連入因特網(wǎng)。2 軟件要求? 安裝了 windows98 以上的系統(tǒng)。23第 3 章 系 統(tǒng) 設(shè) 計 系統(tǒng)的物理結(jié)構(gòu)系統(tǒng)采用對等式結(jié)構(gòu),即任一節(jié)點均可作為服務(wù)器,又可作為客戶端,同時,整個網(wǎng)絡(luò)上可運行多個服務(wù)器,其中雙空心箭頭表示兩者之間建立連接通信,而虛心箭頭表示廣播發(fā)送消息。? 作為服務(wù)器的節(jié)點 1 或 2,它將向網(wǎng)絡(luò)上的所有客戶端廣播自己的房間名。? 作為服務(wù)器的節(jié)點 2,將向該服務(wù)器內(nèi)的客戶端 5 發(fā)送用戶名,發(fā)送用戶退出消息,轉(zhuǎn)發(fā)消息,等待網(wǎng)絡(luò)上所有的節(jié)點的連接消息。? 作為客戶端,將向指定的網(wǎng)絡(luò)上的節(jié)點發(fā)送請求查詢個人資料消息,服務(wù)器將該消息轉(zhuǎn)發(fā)給對應(yīng)的客戶,相應(yīng)的客戶響應(yīng)該查詢,發(fā)送個人資料到服務(wù)器,服務(wù)器再將該消息回送給要查詢的用戶,從而完成查詢個人的資料的消息。? 任一客戶端均可以呼叫另一用戶,以建立兩個人的聊天室,在此基礎(chǔ)上,可以選擇是否語音聊天以及文件傳輸。? 基于 bios 的底層通信子系統(tǒng),主要利用 bios 的編程接口,完成對網(wǎng)卡的初始化,添加名字,廣播發(fā)送消息,廣播接受消息建立連接,傳送消息,獲得網(wǎng)卡信息等的功能。? 設(shè)置子系統(tǒng),負責設(shè)置系統(tǒng)配置,同時提供修改修改個人資料等功能。? 語音聊天子系統(tǒng),主要完成語音的采集,壓縮,傳輸,解壓縮,回放等功能,實現(xiàn)語音聊天。3 系統(tǒng)功能模型圖 頂層功能模型圖圖 3 2首先應(yīng)用程序由這 6 個大的子系統(tǒng)組成,而這些子系統(tǒng)之間的通信以及子系統(tǒng)內(nèi)部的通信都是建立在 NETBIOS 通信子系統(tǒng)基礎(chǔ)上之上的。 登錄子系統(tǒng)功能模型圖圖 3 3 聊天子系統(tǒng)功能模型圖圖 3 4 房間管理子系統(tǒng)模型圖28圖 3 5 語音子系統(tǒng)功能模型圖圖 3 6 NETBIOS 子系統(tǒng)功能模型圖圖 3 729 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計1 消息對象(Cinformation)這個對象很重要,因為該聊天工具中需要傳輸各種消息。該消息類型的屬性有:CString m_strSender 發(fā)送者名字CString m_strReceiver 接收者名字CString m_strInformation 消息,是一結(jié)構(gòu)體,由各個段組成,用:這個關(guān)鍵字符隔開time_t m_tSendTime 消息的時間,long 型UINT m_nType 消息的類型表 3 1其中,m_strInformation 又有它自己的結(jié)構(gòu),根據(jù)程序的需要可以自己任意定義。構(gòu)造的原則如下:一開始的 21 個字節(jié)為發(fā)送者名字,接著的 21 個字節(jié)為接收者名字,接著的 4 個字節(jié)為時間,接著的一個字節(jié)為類型,剩下的字節(jié)為消息體 m_strInformation。2 消息隊列(CinformationBox)消息隊列是系統(tǒng)中用于存放接收到的消息的緩沖區(qū),它其實是消息的一個數(shù)組,屬性定義如下:CInformation m_ciInformationBox[MAX_INFORMATIONS]消息數(shù)組UINT m_nInformationNum 消息數(shù)目表 3 3利用消息隊列,可以緩沖暫時未能處理的消息,避免客戶端與服務(wù)器端的速度不匹配問題,能夠有效的擴展服務(wù)器的承載能力。其屬性定義如下:CString m_strName 姓名31BOOL m_bMale 性別UINT m_nAge 年齡CString m_strInformation 個人說明CString m_strRoom 所在房間名CString m_strToPerson 選擇的對象int m_nRoomChatLsn 房間聊天時的 lsnint m_nPrivateChatLsn 私聊時的 lsn 語音聊天時的 lsnint m_nSoundChatLsn 語音聊天時的 lsnBOOL m_bPrivateChat 是否私聊表 3 4該對象存放 NETBIOS 通信需要的關(guān)鍵的信息,NETBIOS 連接號。 系統(tǒng)界面設(shè)計1 登錄界面圖 3 8提供用戶登錄接口,用于接受用戶的個人信息。系統(tǒng)設(shè)置按鈕用于設(shè)置系統(tǒng)的各種參數(shù)等新建房間按鈕用于新建一個房間。3 個人設(shè)置界面與登錄界面相同,不同之處在于登錄界面初始化為缺省值,而個人設(shè)置界面初始化為最新的個人資料。5 新建房間界面圖 3 11房間名稱用于輸入新房間的名稱,同時若與網(wǎng)絡(luò)上其他房間同名,則非法,若不設(shè)置,則無需密碼即可進入上限人數(shù)用于設(shè)置房間的最多的用戶數(shù)房間說明,用于介紹該房間。7 二人私聊界面圖 3 13選中語音聊天,可以進行語音聊天,取消語音聊天復(fù)選框,即可取消語音聊天。36第 4 章 系統(tǒng)實現(xiàn) 功能規(guī)定1 登錄功能的規(guī)定功能名稱登錄輸入 昵稱,選擇性別,年齡,個人說明等輸出 登錄是否成功37處理IF 系統(tǒng)不提供 NETBIOS 服務(wù)輸出登錄失敗退出ENDIFIF 重置系統(tǒng)的 NETBIOS 服務(wù)失敗輸出登錄失敗退出ENDIFIF 添加個人名字的 NETBIOS 名出錯輸出登錄失敗退出ENDIFIF 如果用戶名已存在輸出登錄失敗退出ENDIF輸出登錄成功退出備注用戶名不能重名,不能為已有名字+s 形成的名字,也不能為 public,長度不超過 20 個字節(jié),年齡在 0——38200 之間,個人說明不超過 100 個字符。表 4 45 語音聊天功能的規(guī)定功能名稱語音聊天輸入 語音聊天請求輸出 建立語音聊天是否成功處理IF 建立語音數(shù)據(jù)連接失敗輸出建立語音聊天失敗退出ENDIF設(shè)置語音聊天對象的參數(shù)IF 打開錄音,放音設(shè)備失敗42輸出建立語音聊天失敗退出ENDIF啟動接受語音數(shù)據(jù)線程啟動播放本地錄音線程啟動播放遠程錄音線程備注 被動請求的另一方在接受到語音連接時,也要按照以上的步驟建立語音聊天。表 4 6 幾個主要的線程的程序設(shè)計 聊天室服務(wù)器端接收消息線程的程序設(shè)計1 程序描述(RecvRoomC
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1