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

正文內(nèi)容

基于net的局域網(wǎng)im聊天工具-文庫吧資料

2024-11-25 21:41本頁面
  

【正文】 事件。 以下是采集的基本步驟: A. 設(shè)置 PCM 格式,設(shè)置相關(guān)的參數(shù),如:采樣頻率、量化位數(shù)等。 :當(dāng)對方通過網(wǎng)絡(luò)傳輸?shù)奖緳C時,進行實時播放。 C. 語音傳輸:將采集到的聲音傳輸?shù)骄W(wǎng)絡(luò)上的其它主機,我采用 Socket UDP方式來實現(xiàn)。 本科生畢業(yè)設(shè)計 23 第 4 章 語音及群聊功能具體設(shè)計 語音通話的實現(xiàn) 實現(xiàn)方法概要 A. 語音采集:采集的作用就是從你的麥克風(fēng)中獲取數(shù)據(jù),我采用 DirectSound類來實現(xiàn)這個技術(shù)。對每個子幀內(nèi)插 LSP 系數(shù)并將其轉(zhuǎn)換為 LP 濾波器系數(shù)。 譯碼原理 首 先,從接收到的比特流中抽取參數(shù)的指標(biāo),譯碼后獲取相應(yīng)于 10ms 話音幀的編碼參數(shù)。每 10ms幀根據(jù)感知加權(quán)話音信號估計一次開環(huán)基音延遲,然后對各子幀重復(fù)以下運算: A. 濾波器的初始態(tài)通過 LPC 信息與激勵間的誤差濾波來更新; B. 通過 LPC 信息經(jīng)由加權(quán)合成濾波器的濾波來計算目標(biāo)信號 x(n); C. 計算加權(quán)合成濾波器的脈沖響應(yīng) h(n); D. 通過開環(huán)基音延遲值的搜尋,使用目標(biāo)信號 x(n)和脈沖響應(yīng) h(n)來 完成閉環(huán)基音分析,以發(fā)現(xiàn)自適應(yīng)碼本的延遲與增益; E. 通過除去自適應(yīng)碼本影響,更新目標(biāo)信號 x(n),并且所產(chǎn)生的新的目標(biāo)信號 x(n)用于在固定碼本中搜尋發(fā)現(xiàn)最佳激勵; F. 自適應(yīng)與固定碼本產(chǎn)生的增益采用 7 比特矢量量化,通過極小化原始話音與重構(gòu)話音間的均方加權(quán)誤差完成增益碼本的搜尋; G. 使用決定的激勵信號對合成與加權(quán)濾波器的狀態(tài)更新以計算下一子幀的目標(biāo)信號。經(jīng)預(yù)處理的信號充當(dāng)所有后續(xù)分析使用的輸入信號。在預(yù)處理單元中,輸入信號須經(jīng)過定標(biāo)和高通濾波。編碼器在 10ms 的話音幀上運行,它相應(yīng)于采樣速率每秒 8000 次的 80 個樣本。 myUdpClient. TTL = 50。 協(xié)議建 議使用 CSACELP的 8kb/s 話音編碼算 法,其編譯碼原理如下。 UdpClient從組中收回之后,將不能再接收發(fā)送到該組的數(shù)據(jù)報。 利用 UdpClient的 DropMulticastGroup方法,可以退出組播組。如果使用默認(rèn)值 (默認(rèn)值 為 1),則只能在子網(wǎng)中發(fā)送。 使用組播時,應(yīng)注意的是 TTL(Time To Live,生存周期 )值的設(shè)置。 IP組播使用特殊的 IP地址范圍來表示不同的組播組。大多數(shù)組播組是臨時的,僅在有成員的時候才存在。任何發(fā)送到組播地址的消息都會被發(fā)送到組內(nèi)的所有成員 設(shè)備上。組播將消息發(fā)送到加入指定組播組的計算機中,組播組是開放的,每臺計算機都可以通過程序隨時加入到組播組中,也可以隨時離開,因此減少了不必要的網(wǎng)絡(luò)傳輸負(fù)擔(dān)。組播沒有這個限制,只要加入組就能收到數(shù)據(jù)包。 實際運用中,往往除了廣播之外,為了滿足一部分特定的用戶需求,我們則需要用到組播這一技術(shù),組播和廣播的區(qū)別主要有以下兩種: 播無法通過路由器 ,廣播只是限于本網(wǎng)段內(nèi),遇到路由器則止。 本科生畢業(yè)設(shè)計 21 組播也叫多路廣播。但是由于路由器會自動過濾掉全球廣播,所以使用這個地址沒有實際意義。),把主機標(biāo)示部分二進制表示全部為 1的地址稱為本地廣播地址 全球廣播的目的地是網(wǎng)絡(luò)上的所有設(shè)備。 廣播消息地址分為兩種類型: 本地廣播是指向子網(wǎng)中的所有計算機發(fā)送廣播消息,其他網(wǎng)絡(luò)不會受到本地廣播的影響。 廣播就是指同時向子網(wǎng)中的多臺計算機發(fā)送消息,并且所有子網(wǎng)中的計算機都可以接收到發(fā)送方發(fā)來的消息。日常生活中的網(wǎng)絡(luò)會議通知、廣告、網(wǎng)絡(luò)信息公告等功能,需要采用 UDP 實現(xiàn)一對多的群發(fā)功能。這要求操作系統(tǒng)從接收到的 UDP數(shù)據(jù)報中將目的 I P地址交給應(yīng)用程序。這個特性允許一個交互 UDP服務(wù)器對多個客戶進行處理。 IP首部包含源端和目的端 IP地址, UDP首部包含了源端和目的端的 UDP端口號。 TCP以應(yīng) 用程序讀操作時所要求的長度來傳送數(shù)據(jù),因此,在這個接口下,不會發(fā)生數(shù)據(jù)丟失。相反,它返回一個標(biāo)志表明可以獲得更多的數(shù)據(jù),而應(yīng)用程序后面的讀操作將返回數(shù)據(jù)報的其余部分。它也不通知應(yīng)用程序從單個 UDP數(shù)據(jù)報中多次進行讀取操作。 SVR4下的 Socket API(包括 Solaris ) 并不截斷數(shù)據(jù)報。 典型的 Berkeley版 Socket API對數(shù)據(jù)報進行截斷,并丟棄任何多余的數(shù)據(jù)。因此, UDP編程接口允許應(yīng)用程序指定每次返回的最大字節(jié)數(shù)。可能存在一些實現(xiàn)特性(或差錯),使 I P數(shù)據(jù)報長度小于 65535字節(jié)。現(xiàn)在的大部分系統(tǒng)都默認(rèn)提供了可讀寫大于 8192字節(jié)的 UDP數(shù)據(jù)報(使用這個默認(rèn)值是因為 8192是 NFS讀寫用戶數(shù)據(jù)數(shù)的默認(rèn)值)。Socket API提供了一個可供應(yīng)用程序調(diào)用的函數(shù),以設(shè)置接收和發(fā)送緩存的長度。 我們將遇到兩個限制因素。去除 20字節(jié)的 IP首部和 8個字節(jié)的 UDP首部, UDP數(shù)據(jù)報中用戶數(shù)據(jù)的最長長度為 65507字節(jié)。其目的是讓 UDP兩次檢查數(shù)據(jù)是否已經(jīng)正確到達(dá)目的地(例如, IP沒有接受地址不是本主機的數(shù)據(jù)報,以及 IP沒有把應(yīng)傳給另一高 層的數(shù)據(jù)報傳給 UDP)。 其次, UDP數(shù)據(jù)報和 TCP段都包含一個 12字節(jié)長的偽首部,它是為了計算檢驗而設(shè)置的。首先, UDP數(shù)據(jù)報的長度可以為奇數(shù)字節(jié),但是檢驗和算法是把若干個 16 bit字相加。 UDP的檢驗和是可選的,而 TCP的檢驗和是必需的?;叵?IP首部的檢驗和,它只覆蓋 IP的首部 — 并不覆蓋 IP數(shù)據(jù)報中的任何數(shù)據(jù)。如果需要,源端到目的端之間的每個網(wǎng)絡(luò)都要進行分片,并不只是發(fā)送端主機連接第一個網(wǎng)絡(luò)才這樣做。應(yīng)用程序必須關(guān)心 IP數(shù)據(jù)報的長度。 UDP數(shù)據(jù)報封裝成一份 I P數(shù)據(jù)報的格式 RFC 768 [Postel 1980]是 UDP的正式規(guī)范。 網(wǎng)絡(luò)基礎(chǔ)通信 1.、 UDP:用戶數(shù)據(jù)報協(xié)議 UDP是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議:進程的每個輸出操作都正好產(chǎn)生一個 UDP數(shù)據(jù)報,并組裝成一份待發(fā)送的 I P數(shù)據(jù)報。所以 UDP一般應(yīng)用于對傳輸實時性要求較高且網(wǎng) 絡(luò)可靠性較好的場合,如實時的語音圖像傳輸。 以下為圖例: 本科生畢業(yè)設(shè)計 17 圖 31 面向連接的套接字系統(tǒng)調(diào)用時序 本科生畢業(yè)設(shè)計 18 圖 32 無連接的套接字系統(tǒng)調(diào)用時序 從上面兩幅圖中可分析出 TCP是面向連接的傳輸協(xié)議,在傳輸數(shù)據(jù)前,必須在發(fā)送方和接收方直接先建立通信通道,它擁有重傳機制和擁塞控制機制,提供高可靠性的服務(wù)。(看清楚哦,和 TCP 的執(zhí)行方法有區(qū)別,因為 UDP 不需要建立連接,所以在發(fā)送前并不知道對方的 IP 和端口,因此需要指定一個發(fā)送的節(jié)點才能進行正常的發(fā)送和接收) e. 當(dāng)不 繼續(xù)發(fā)送和接收 之后 , 為了避免 資源 的浪費 。 d. TCP 情況下,如果監(jiān)聽到一個連接,就可以使用 Accept 來接收這個連接,然后就可以利用 Send/Receive 來執(zhí)行操作了。步驟 如下 : a. 建立一個套接字 b. 綁定本機的 IP 和端口 c. 如果是 TCP,因為是面向連接的,所以要利用 Listen() 方法來監(jiān)聽網(wǎng)絡(luò)上是否有人給自己發(fā)東西 。 UDP。 ( 2)還必須 得有協(xié)議。 在 C中, 微軟 為我們提供了 命名空間,里面包含了 Socket 類。也可以理解成是一個 API。在Unix 中, Socket 代表了一種文件描述符(在 Unix 中一切都是以文件為單位),而這里這個描述符則是用于描述網(wǎng)絡(luò)訪問的。 ② 控制端: A:接收來自請求端傳來的圖像信息并把它顯示在指定的窗口,達(dá)到遠(yuǎn)程觀看的效果; B:獲取以及傳送本地的鼠標(biāo)信息到控制端的計算機,實行遠(yuǎn)程控制。 ① 、 添加好友: 當(dāng)收到特殊指令 (:USER:)后執(zhí)行好友添加代碼,實例化對象后賦值并把該用戶添加到好友列表中并更新好好友列表: ②、刪除好友: 當(dāng)收到特殊指令 (IAMOFF)后執(zhí)行好友刪除代碼,通過 IP 地址遍歷好友列表來查找該好友的索引 (index),通過索引來刪除對應(yīng)的好友并更新 好友列表: 遠(yuǎn)程協(xié)助 遠(yuǎn)程協(xié)助具體步驟如下圖所示: 本科生畢業(yè)設(shè)計 14 由于遠(yuǎn)程協(xié)助所覆蓋的范圍較為廣,難度最大,花的時間也是最大的,但經(jīng)過小組的探討,將其分為兩個小模塊:請求端、控制端。通過自定義指令來辨別是否開啟了相同的進程。 偵聽進程 :偵聽指定端口,將收到的消息進行反編碼,并查找收到的字符串是否存在指定的指令,若有則進行不同的操作,若沒有則丟棄該消息。 本科生畢業(yè)設(shè)計 11 第 3 章 好友查找、好友列表及遠(yuǎn)程協(xié)助設(shè)計原理 功能概要 好友查找 在用戶登陸本系統(tǒng)后,系統(tǒng)后臺隨機開始進行好友查找。服務(wù)進程通常使用一個固定的端口,例如, SMTP 使用25。 端口是一個軟件結(jié)構(gòu),被客戶程序或服務(wù)進程用來發(fā)送和接收信息。 源端口 源系統(tǒng)上的連接的端口。 兩個系統(tǒng)間的多重連接是這樣 相互確認(rèn)并協(xié)調(diào)一致 的, TCP 或 UDP 連接唯一地使用每個信息中的如下四項進行確認(rèn): 源 IP 地址 發(fā)送包的 IP 地址。 UDP 與 TCP 位于同一層,但對于數(shù)據(jù)包的順序錯誤或重發(fā)。 TCP 將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。 IP 數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。 IP 層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層 TCP 或 UDP 層;相反, IP 層也把從 TCP 或 UDP 層接收來的數(shù)據(jù)包傳送到更低層。所有線程通過 CLI 來進行管理。這種情況可以視為給線程實現(xiàn)了鎖機制。進程池可以同時運行多個 任務(wù),還可以使用框架類。有兩種主要的多線程方法是 .NET 所提倡的:使用 ThreadStart 來開始你自己的進程,直接的(使用)或者間接的(比如 ,或者本科生畢業(yè)設(shè)計 9 調(diào)用 BeginInvoke)使用 ThreadPool 類。程序的運行速度更加快; 使用多線程可以把占據(jù)長時間的程序中的任務(wù)放到后臺去處理宜家可以執(zhí)行多段代碼; 本科生畢業(yè)設(shè)計 8 它們之間的關(guān)系如圖 21 所示: 圖 21 Windows Sockets 實現(xiàn)通訊工作的各層關(guān)系圖 多線程開發(fā)技術(shù) 多線程在構(gòu)建大 型系統(tǒng)的時候如何使其能夠發(fā)揮出硬件的最大效率問題,這對代碼以及算法有很高的要求。應(yīng)用程序調(diào)用 Windows Sockets 的 API 實現(xiàn)相互之間的通訊。 Windows sockets 無疑是我們進行網(wǎng)絡(luò)編程的利器。 WINDOWS SOCKETS 網(wǎng)絡(luò)編程接口 選定 WINDOWS 平臺開發(fā)網(wǎng)絡(luò)通信程序,可以選擇 WINDOWS 的 SOCKETS 編程接口, Windows Sockets 是一套開放的、支持多種協(xié)議的 Windows 下的網(wǎng)絡(luò)編程接口。 Microsoft 是這樣描述 C的: “C 是從 C 和 C++派生來的一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言。 C是 Microsoft 公司設(shè)計的一種編程語言。它為創(chuàng)建、部署以及管理安全、強大、高效的應(yīng)用程序提供了前所未有的最大支持。先打開群聊天窗口,并自主選擇 UPD 組播組,進入該組播組之后,邊可利用 UDP 組播暢快的進行群聊天了。當(dāng)客戶端檢測到此 UDP 廣播數(shù)據(jù)報時自動接收,并且進行解碼、以及播放。各自的客戶端將對自己的 IP 地址以及端口進行綁定,同時開始偵聽網(wǎng)絡(luò)信道是否有 UDP 廣播數(shù)據(jù)報??蛻舳酥邪纛l編解碼模塊,實現(xiàn)具體的語音通信。這里運用了大量的自定義指令,較為繁瑣。 遠(yuǎn)程協(xié)助 遠(yuǎn)程協(xié)助是本聊天軟件的難中之難,其中包括圖像的獲取以及傳輸、鼠標(biāo)指令的收集以及發(fā)送、鍵盤鍵值的手機以及發(fā)送等等。 好友列表的操作 本模塊為 IM 的上層應(yīng)用提供底層的網(wǎng)絡(luò)傳輸以及技術(shù)支持,主要包括通過UDP 廣播查找好友指令、處理回復(fù)指令、對好友資料提取分類。 好友查找以及好友資料 這是 IM 工具的一個難點之一,在寫代碼的時候我們必須把這個客戶端在我們的 腦海里模擬成一個服務(wù)端、一個客戶端同時運行,對此,我們小組對于代碼的可行性進行了嚴(yán)密的分析與設(shè)計。 通過循環(huán)來吧查找到的在線主機逐一添加,從而實現(xiàn)好友列表 實現(xiàn)難點 特殊指令的統(tǒng)一、好友查找以及信息的獲取。 好友查找我們通過在特定的指令下對獲取到的用戶資料進行操作,好友資料包括昵稱、主機名、 IP 地址。本 IM 工具各個功能模塊都是在特定指令下展開工作的,包括 點對點文字聊天、遠(yuǎn)程控制。本科生畢業(yè)設(shè)計 本科生畢業(yè)論文(設(shè)計) 題目:基于 .NET 的局域網(wǎng) IM 聊天工具 —— 好友查找、好友狀態(tài)、點對點聊天、遠(yuǎn)程控制 系 別:電子通信與軟件工程系 專 業(yè):計算機科學(xué)與技術(shù) 學(xué) 號: 姓 名: 指導(dǎo)教師: 二○一一年五月 裝 訂 線 裝訂線本科生畢業(yè)設(shè)計
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1