中國投影網(wǎng)
資訊首頁 |  投影信息 |  新品上市 |  招標(biāo)信息 |  應(yīng)用案例 |  技術(shù)動態(tài) |  展會信息 |  投影行情 |  企業(yè)訪談
學(xué)園首頁 |  名詞解釋 |  選購常識 |  維修保養(yǎng) |  技術(shù)動態(tài) |  使用手冊 |  維修專區(qū) |  有問必答 |  歡迎投稿
投影技術(shù)分類導(dǎo)航
 >> 投影機(jī) >> 電子白板
 >> 投影儀 >> 投影燈泡
 >> 切換器 >> 視頻展臺
 >> 接口矩陣 >> 等離子屏
 >> 投影幕 >> 投影吊架
 >> 分配器 >> 液晶電視
 >> 延長器 >> 圖形處理器
 >> 反射鏡 >> 中央控制器
 >> 會議系統(tǒng) >> 多媒體講臺
 >> 接口矩陣 >> 背投一體機(jī)
 >> 虛擬仿真 >> 背投拼接墻
 >> LCOS技術(shù) >> 邊緣融合
>> 高清技術(shù) >> 家庭影院
   
實(shí)用查詢
·投影機(jī)使用時間清零方法大全
·投影機(jī)常見故障排除法
·各品牌投影機(jī)總維修站800電話
·最佳投影距離通用計(jì)算公式
·投影屏幕尺寸、投影距離計(jì)數(shù)器
·投影機(jī)維修
 
 
  當(dāng)前位置: >> 首頁 >> 技術(shù)學(xué)園 >> 數(shù)字視頻監(jiān)控應(yīng)用中要注意的網(wǎng)絡(luò)問題
數(shù)字視頻監(jiān)控應(yīng)用中要注意的網(wǎng)絡(luò)問題
 更新時間:2012-2-27 10:41:26 。 編輯:旺牛 )   

  數(shù)字視頻監(jiān)控應(yīng)用中,必須用到網(wǎng)絡(luò)通訊,就網(wǎng)絡(luò)通訊需要注意的幾個問題在這里表達(dá)下自己的看法。

  第一:網(wǎng)絡(luò)通訊中的收發(fā)效率

  視頻監(jiān)控中需要傳輸視頻流,視頻流是比較大的數(shù)據(jù),所以對于網(wǎng)絡(luò)通訊的中的收發(fā)效率提高是比較關(guān)鍵的。

  在網(wǎng)絡(luò)通訊中TCP通訊包括send寫數(shù)據(jù)和recv讀數(shù)據(jù)。

  讀本質(zhì)來說其實(shí)不能是讀,在實(shí)際中,具體的接收數(shù)據(jù)不是由這些調(diào)用來進(jìn)行,是由于系統(tǒng)底層自動完成的,read也好,recv也好只負(fù)責(zé)把數(shù)據(jù)從底層緩沖copy到我們指定的位置.對于讀來說(read,或者recv),在阻塞條件下如果沒有發(fā)現(xiàn)數(shù)據(jù)在網(wǎng)絡(luò)緩沖中會一直等待,當(dāng)發(fā)現(xiàn)有數(shù)據(jù)的時候會把數(shù)據(jù)讀到用戶指定的緩沖區(qū),但是如果這個時候讀到的數(shù)據(jù)量比較少,比參數(shù)中指定的長度要小,read并不會一直等待下去,而是立刻返回。read的原則是數(shù)據(jù)在不超過指定的長度的時候有多少讀多少,沒有數(shù)據(jù)就會一直等待。所以一般情況下我們讀取數(shù)據(jù)都需要采用循環(huán)讀的方式讀取數(shù)據(jù),一次read完畢不能保證讀到我們需要長度的數(shù)據(jù),read完一次需要判斷讀到的數(shù)據(jù)長度再決定是否還需要再次讀取。在非阻塞的情況下,read的行為是如果發(fā)現(xiàn)沒有數(shù)據(jù)就直接返回,如果發(fā)現(xiàn)有數(shù)據(jù)那么也是采用有多少讀多少的進(jìn)行處理.對于讀而言,阻塞和非阻塞的區(qū)別在于沒有數(shù)據(jù)到達(dá)的時候是否立刻返回.recv中有一個MSG_WAITALL的參數(shù)recv(sockfd,buff,buff_size,MSG_WAITALL),在正常情況下recv是會等待直到讀取到buff_size長度的數(shù)據(jù),但是這里的WAITALL也只是盡量讀全,在有中斷的情況下recv還是可能會被打斷,造成沒有讀完指定的buff_size的長度。所以即使是采用recv+WAITALL參數(shù)還是要考慮是否需要循環(huán)讀取的問題,在實(shí)驗(yàn)中對于多數(shù)情況下recv還是可以讀完buff_size,所以相應(yīng)的性能會比直接read進(jìn)行循環(huán)讀要好一些。不過要注意的是這個時候的sockfd必須是處于阻塞模式下,否則WAITALL不能起作用。

  寫的本質(zhì)也不是進(jìn)行發(fā)送操作,而是把用戶態(tài)的數(shù)據(jù)copy到系統(tǒng)底層去,然后再由系統(tǒng)進(jìn)行發(fā)送操作,返回成功只表示數(shù)據(jù)已經(jīng)copy到底層緩沖,而不表示數(shù)據(jù)以及發(fā)出,更不能表示對端已經(jīng)接收到數(shù)據(jù).對于write(或者send)而言,在阻塞的情況是會一直等待直到write完全部的數(shù)據(jù)再返回.這點(diǎn)行為上與讀操作有所不同,究其原因主要是讀數(shù)據(jù)的時候我們并不知道對端到底有沒有數(shù)據(jù),數(shù)據(jù)是在什么時候結(jié)束發(fā)送的,如果一直等待就可能會造成死循環(huán),所以并沒有去進(jìn)行這方面的處理;而對于write,由于需要寫的長度是已知的,所以可以一直再寫,直到寫完.不過問題是write是可能被打斷造成write一次只write一部分?jǐn)?shù)據(jù),所以write的過程還是需要考慮循環(huán)write,只不過多數(shù)情況下一次write調(diào)用就可能成功。

  非阻塞寫的情況下,是采用可以寫多少就寫多少的策略.與讀不一樣的地方在于,有多少讀多少是由網(wǎng)絡(luò)發(fā)送的那一端是否有數(shù)據(jù)傳輸?shù)綖闃?biāo)準(zhǔn),但是對于可以寫多少是由本地的網(wǎng)絡(luò)堵塞情況為標(biāo)準(zhǔn)的,在網(wǎng)絡(luò)阻塞嚴(yán)重的時候,網(wǎng)絡(luò)層沒有足夠的內(nèi)存來進(jìn)行寫操作,這時候就會出現(xiàn)寫不成功的情況,阻塞情況下會盡可能(有可能被中斷)等待到數(shù)據(jù)全部發(fā)送完畢,對于非阻塞的情況就是一次寫多少算多少,沒有中斷的情況下也還是會出現(xiàn)write到一部分的情況.

  所以基于socket讀和寫的本質(zhì),我們可以得出結(jié)論,不是每次收發(fā)越大越好,也不是每次收發(fā)越小越好,需要根據(jù)網(wǎng)絡(luò)的實(shí)際情況得出這樣一個臨界值。

  第二:盡量使用非阻塞模式

  在這里有必要對阻塞的概念作一解釋:一個socket可以處于"阻塞模式"或"非阻塞模式",當(dāng)一個套接字處于阻塞模式(即同步操作)時,它的阻塞函數(shù)直到操作完成才會返回控制權(quán),之所以稱為阻塞是因?yàn)榇颂捉幼值淖枞瘮?shù)在完成操作返回之前什么也不能做。如果一個socket處于非阻塞模式(即異步操作),則會被調(diào)用函數(shù)立即返回?梢杂肎etLastError成員函數(shù)查詢最后的錯誤。微軟建議盡量使用非阻塞模式,通過網(wǎng)絡(luò)事件的發(fā)生而通知應(yīng)用程序進(jìn)行相應(yīng)的處理。

  在視頻數(shù)據(jù)傳輸部分為了不影響其他的業(yè)務(wù),所以建議都使用線程在線程中用非阻塞模式的socket來收發(fā)數(shù)據(jù),這樣既不會影響其他業(yè)務(wù)的正常運(yùn)作,還不會導(dǎo)致如果是阻塞模式下阻塞情況下線程退出不及時的問題。


更多相關(guān):  投影機(jī)

文章來源:中國投影網(wǎng)          

推薦給朋友】【投稿建議】【加入收藏夾】【 】【打印】【關(guān)閉】【評論】【頂部
 相關(guān)新聞
如何讓液晶拼接屏安裝簡單化 有效預(yù)防LCD顯示屏在工程中損壞方法
紅外線無線話筒常識 互動投影系統(tǒng)的組成
互動投影技術(shù)的原理 互動投影系統(tǒng)應(yīng)用的幾個優(yōu)點(diǎn)
立體全息成像技術(shù)原理 盤點(diǎn)當(dāng)今14種新興人機(jī)交互技術(shù)
走出技術(shù)誤區(qū)—虛擬現(xiàn)實(shí)VS全息技術(shù) 視頻會議:巧用10大應(yīng)用技巧
 網(wǎng)友評論
 
設(shè)為首頁 | 建站服務(wù) |  商務(wù)信息 | 投影資訊 | 本站動態(tài) | 付款方式 | 關(guān)于中國投影網(wǎng) | 網(wǎng)站地圖 | 友情鏈接

本站網(wǎng)絡(luò)實(shí)名:中國投影網(wǎng)|投影機(jī)|投影機(jī)報價 國際域名:http://www.digitallifeshow.com/
版權(quán)所有© 2012 中國投影網(wǎng) .
郵箱:web@ty360.com 電話:+86-755-33225360(十二線) 傳真:+86-755-33010311