DAV数字音视工程网_会议系统、指挥调度、演艺科技、智能楼宇等音视频工程信息行业门户

DAV首頁
數字音視工程網

微信公眾號

數字音視工程網

手機DAV

null
null
null
卓華,
招商,
null
null
null
快捷,
null

我的位置:

share

數字視頻監控應用中要注意的網絡問題

來源:安防展覽網        編輯:ann    2012-02-24 09:44:19     加入收藏    咨詢

咨詢
所在單位:*
姓名:*
手機:*
職位:
郵箱:*
其他聯系方式:
咨詢內容:
驗證碼:
不能為空 驗證碼錯誤
確定

  數字視頻監控應用中,必須用到網絡通訊,就網絡通訊需要注意的幾個問題在這里表達下自己的看法。

  第一:網絡通訊中的收發效率

  視頻監控中需要傳輸視頻流,視頻流是比較大的數據,所以對于網絡通訊的中的收發效率提高是比較關鍵的。

  在網絡通訊中TCP通訊包括send寫數據和recv讀數據。

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

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

  非阻塞寫的情況下,是采用可以寫多少就寫多少的策略.與讀不一樣的地方在于,有多少讀多少是由網絡發送的那一端是否有數據傳輸到為標準,但是對于可以寫多少是由本地的網絡堵塞情況為標準的,在網絡阻塞嚴重的時候,網絡層沒有足夠的內存來進行寫操作,這時候就會出現寫不成功的情況,阻塞情況下會盡可能(有可能被中斷)等待到數據全部發送完畢,對于非阻塞的情況就是一次寫多少算多少,沒有中斷的情況下也還是會出現write到一部分的情況.

  所以基于socket讀和寫的本質,我們可以得出結論,不是每次收發越大越好,也不是每次收發越小越好,需要根據網絡的實際情況得出這樣一個臨界值。

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

  在這里有必要對阻塞的概念作一解釋:一個socket可以處于"阻塞模式"或"非阻塞模式",當一個套接字處于阻塞模式(即同步操作)時,它的阻塞函數直到操作完成才會返回控制權,之所以稱為阻塞是因為此套接字的阻塞函數在完成操作返回之前什么也不能做。如果一個socket處于非阻塞模式(即異步操作),則會被調用函數立即返回。可以用GetLastError成員函數查詢最后的錯誤。微軟建議盡量使用非阻塞模式,通過網絡事件的發生而通知應用程序進行相應的處理。

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

免責聲明:本文來源于安防展覽網,本文僅代表作者個人觀點,本站不作任何保證和承諾,若有任何疑問,請與本文作者聯系或有侵權行為聯系本站刪除。(原創稿件未經許可,不可轉載,轉載請注明來源)
掃一掃關注數字音視工程網公眾號

相關閱讀related

評論comment

 
驗證碼:
您還能輸入500
    主站蜘蛛池模板: 学汽修,学汽修技术,汽修培训班,汽车美容培训,汽车新能源技术培训-广州万通汽车培训学校[官方网站] | 深圳PCB电路板厂|PCB线路板厂|FPC柔性电路板厂|FPC软性线路板生产厂家|恒成和电路板:18681495413 | 首页 网络安全与数据治理(原《信息技术与网络安全》) | 木屑烘干机|酒糟烘干机|果渣烘干机_郑州东鼎机械 | 热熔钻孔机【优质厂家】_多年热熔钻设备研发制造经验 | 无锡鑫润杰金属科技有限公司 | 河北瑞峰医疗-河北护理床-河北医用病床-河北养老院护理床-河北护理床厂家-河北病床厂家-河北瑞峰医疗 | 纳米砂磨机|纳米研磨机|实验室砂磨机-无锡市少宏粉体科技有限公司 | 玉米加工机械_玉米深加工机械_玉米加工设备--河南工粮机械设备有限公司 | 膨胀节_波纹膨胀节_非金属膨胀节_波纹管补偿器_膨胀节厂家-江苏苏创管业科技有限公司 | 宿迁市华泰交通设施有限公司,上海第四代路名牌,天津仿罗马柱路名牌,标准路名牌,路名牌灯箱,公交站台,户外广告灯箱, 交通标志牌,社区阅报栏 | 盐城市宏展环保材料有限公司-官网-滤袋,过滤袋,液体过滤袋,袋式过滤器,无纺布过滤袋,废液过滤袋 盐城市城镇化建设投资集团有限公司[盐城国资企业、盐城国资集团、盐城文化旅游、盐城基础设施、盐城土地开发、盐城粮食收储] | 停车场设计|地下停车场规划设计|智能停车位地下车库设计施工装修|深圳创安顺停车库规划设计有限公司 | 上海防爆墙厂家_上海上胜安防工程有限公司 | 美国SI中国区总代-北京开源国创科技有限公司 | 合肥发斯特精密塑模有限公司专业精密磨具,注塑模具,精密注塑机械零件(加工制造|生产|销售|厂家) 浩通集团 国际货运 物贸一体化 中非经贸 | 上虞大金湖官网|数控外圆磨床|数控内圆磨床|数控无心磨床 | 一次性妇科用品_一次性医疗用品_一次性口腔器械盒_天津市双利医疗器械有限责任公司 | 三菱plc_触摸屏_变频器_欧姆龙plc_普洛菲斯_安川伺服电机-广州凌控 | 珀金斯动力设备扬州有限公司| 家用油烟净化机_商用餐饮油烟净化器_工业油雾废气处理设备_深圳市宝篮环保 | 吸管包装机_塑料杯包装机_纸杯包装机_吸管挤出机_温州恩博机械有限公司 | 展馆周边酒店_会展中心附近酒店_展览旅游酒店预订官网-盟友云 | 江门市振达机械制造有限公司_散货输送系统_全密封带式输送机 | 双层恒温培养箱|智能振荡培养箱-常州市仪都百科 | 生物质蒸发器_燃气蒸发器_燃气锅炉价格|厂家直销-山东泰锅锅炉设备有限公司 | 湖南九农王机电设备有限公司官网 | 温州网络公司_网站建设_网络营销策划_阿里淘宝店铺服务-温州聚欣网络科技有限公司 | 郑州环球重工机械有限公司建筑垃圾处理专题网站 | 进销存软件|仓库管理软件|库存物资出入库|ERP生产|MRP|易特软件官方网站 | 履带式移动破碎站-移动筛分站-移动碎石机-破碎机_山东奥凯诺矿机 | 微型电磁阀_隔膜泵_活塞泵_微型水泵_微型真空泵_微型气泵【东莞市宗旨电子科技有限公司】 | 美林基业集团官网——美林基业,一生挚诚 | 无塔供水设备_无负压供水设备_变频供水设备_净化过滤设备_加油站油罐_S/F双层油罐_开封市东方供水设备有限公司 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 长春试验机-长春凯新试验仪器_试验机研发生产 专注试验机_首页 | 深圳市中控智能科技有限公司 | 上虞大金湖官网|数控外圆磨床|数控内圆磨床|数控无心磨床 | 鲜淘网 - 精选全球水果蔬菜肉食海产生鲜,酒水食品零食加盟供求信息 | 小型环境空气质量连续监测系统-烟气排放连续监测仪(碳排放)-青岛明德环保仪器有限公司 | 克莱门特中央空调维修 |