本發(fā)明專利技術(shù)公開了一種網(wǎng)絡數(shù)據(jù)的接收方法,包括定時處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程;所述定時處理流程在每次定時時間到時,檢查接收者對象注冊表,在接收對象注冊表不為空時,調(diào)用其中每個接收者的接收接口,驅(qū)動各個接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;所述接收者對象處理流程在一個接收會話初始化后,設置使用的套接字,將該會話的接收者對象添加到所述接收者對象注冊表中,并由定時處理流程驅(qū)動操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在對應的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會話的接收者對象從接收者對象注冊表中刪除。應用本發(fā)明專利技術(shù),能夠有效地降低網(wǎng)絡數(shù)據(jù)接收過程中的系統(tǒng)資源消耗。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及網(wǎng)絡上的數(shù)據(jù)傳輸技術(shù),特別涉及。
技術(shù)介紹
目前,利用網(wǎng)絡進行數(shù)據(jù)傳輸已經(jīng)普及。例如:在視頻會議和視頻監(jiān)控領(lǐng)域,視頻或者音頻采樣數(shù)據(jù),通過特定的編碼算法編碼之后,形成的特定格式的數(shù)字媒體,往往需要通過網(wǎng)絡傳輸至網(wǎng)絡上的另外一端進行播放,這里傳輸?shù)臄?shù)據(jù)就是一種流媒體數(shù)據(jù)。而作為流媒體的網(wǎng)絡接收端,其網(wǎng)絡接收性能直接影響到系統(tǒng)的整體性能。現(xiàn)有技術(shù)中,網(wǎng)絡數(shù)據(jù)的接收方法通常采用以下兩種:第一種:通過阻塞式的接收方式進行接收。這是最為簡單常用的一種網(wǎng)絡數(shù)據(jù)接收方式,即接收端應用程序為每一個網(wǎng)絡套接字建立一個線程,該線程對該套接字執(zhí)行系統(tǒng)調(diào)用數(shù)據(jù)接收處理流程(recv),以進行網(wǎng)絡數(shù)據(jù)的接收。若沒有收到數(shù)據(jù),則線程一直阻塞在對recv的調(diào)用上,直至收到數(shù)據(jù)為止。這種方式需要建立大量的線程專門用于網(wǎng)絡數(shù)據(jù)的接收,雖然有系統(tǒng)負荷允許的前提下,數(shù)據(jù)時延較小,但由于其大量消耗系統(tǒng)資源,整體性能極其受限,并發(fā)度比較低。第二種:通過操作系統(tǒng)支持的多路復用技術(shù)進行接收。這種方式是由一個線程監(jiān)測應用中的所有網(wǎng)絡套接字,查看是否有數(shù)據(jù)到達,一旦檢測到有數(shù)據(jù)到達,立即進行接收。這種方式表面上資源消耗低,數(shù)據(jù)接收時延小,但在實際使用過程中會發(fā)現(xiàn),監(jiān)測網(wǎng)絡套接字的線程本身的監(jiān)測操作會消耗大量系統(tǒng)資源,同時,當監(jiān)測到某個套接字上有數(shù)據(jù)到達并去接收時,往往收到的數(shù)據(jù)量較小(因為剛剛有一小部分數(shù)據(jù)到達就被監(jiān)測至IJ,并立即去接收),從而造成每次的接收調(diào)用recv都只能收到很少的數(shù)據(jù),而接收的次數(shù)卻相當頻繁,這又進一步降低了系統(tǒng)的效率,實際應用效果會比較差。上述兩種網(wǎng)絡數(shù)據(jù)的接收方法對于流媒體數(shù)據(jù)的接收來說,缺陷更為明顯。
技術(shù)實現(xiàn)思路
有鑒于此,本專利技術(shù)的目的在于提供,以降低包括流媒體數(shù)據(jù)在內(nèi)的網(wǎng)絡數(shù)據(jù)接收過程中的系統(tǒng)資源消耗。為達到上述目的,本專利技術(shù)提供了,包括:定時處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程。所述定時處理流程在每次定時時間到時,檢查預設的接收者對象注冊表,在接收對象注冊表不為空時,調(diào)用其中每個接收者的接收接口,驅(qū)動各個接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;所述接收者對象處理流程在一個接收會話初始化后,設置使用的套接字,,將該會話的接收者對象添加到所述接收者對象注冊表中,并由定時處理流程驅(qū)動在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在所述的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會話的接收者對象從接收者對象注冊表中刪除;所述數(shù)據(jù)接收流程為操作系統(tǒng)套接字提供的數(shù)據(jù)接收流程。較佳地,所述定時處理流程包括如下步驟:Al、建立并啟動定時器;A2、等待定時器超時;A3、在定時器超時時,重啟定時器;并檢查接收者對象注冊表,判斷其是否為空,如果為空,則返回步驟A2 ;否則,執(zhí)行步驟A4 ;A4、調(diào)用接收者對象注冊表中每個接收者的接收接ロ,驅(qū)動各個接收接ロ執(zhí)行所述數(shù)據(jù)接收處理流程;返回步驟A2。較佳地,所述步驟A2中,在等待定時器超時前,還包括:判斷系統(tǒng)是否關(guān)閉的步驟,在系統(tǒng)關(guān)閉時注銷定時器,結(jié)束流程。較佳地,所述接收接ロ為套接字;所述接收者對象處理流程為C++的一個數(shù)據(jù)接收基類的派生類流程;所述數(shù)據(jù)接收基類中封裝了開始接收接口和停止接收接ロ ;該派生類流程包括如下步驟:B1、接收會話初始化后,設置該會話使用的套接字的接收緩沖區(qū);B2、調(diào)用數(shù)據(jù)接收基類中的開始接收接ロ,將該會話的接收者對象添加到所述接收者對象注冊表中;B3、判斷是否繼續(xù)接收網(wǎng)絡數(shù)據(jù),如果是,則執(zhí)行步驟B4 ;否則,執(zhí)行步驟B5 ;B4、定時處理流程驅(qū)動在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程后,返回步驟B3 ;B5、調(diào)用數(shù)據(jù)接收基類中的停止接收接ロ,將該會話的接收者對象從接收者對象注冊表中刪除后,結(jié)束流程。較佳地,所述步驟BI中,套接字接收緩沖區(qū)的大小根據(jù)網(wǎng)絡數(shù)據(jù)平均碼流的大小和定時器時間間隔設置。較佳地,若系統(tǒng)具有多個CPU,則在定時處理流程中建立與CPU數(shù)量相同的定時器;每個定時器對應設置一個接收者對象注冊表;每個定時器超時時檢查各自對應的接收者對象注冊表;所述步驟B2中,數(shù)據(jù)接收基類中的開始接收接ロ,將該會話的接收者對象添加到最不繁忙的接收者對象注冊表中。較佳地,平均每個定時器由ー個線程承載,多個線程由多個CPU承載。較佳地,步驟B3所述判斷是否繼續(xù)接收網(wǎng)絡數(shù)據(jù)為:判斷是否數(shù)據(jù)接收完畢或者判斷是否網(wǎng)絡異常;如果數(shù)據(jù)接收完畢或者網(wǎng)絡異常,則判定不繼續(xù)接收網(wǎng)絡數(shù)據(jù)。較佳地,所述接收對象注冊表由ー隊列實現(xiàn),其中保存了各個接收會話對應的所述派生類實例的指針。較佳地,所述定時器定時時間為10-20毫秒。由上述的技術(shù)方案可見,本專利技術(shù)的這種網(wǎng)絡數(shù)據(jù)的接收方法,通過增加定時處理流程和接收者對象處理流程,與現(xiàn)有操作系統(tǒng)套接字的數(shù)據(jù)接收處理流程相配合,實現(xiàn)了以固定間隔地周期性接收網(wǎng)絡數(shù)據(jù),從而降低了網(wǎng)絡數(shù)據(jù)接收過程中的系統(tǒng)消耗。特別是對于流媒體數(shù)據(jù),由于流媒體數(shù)據(jù)本身具有周期性大量數(shù)據(jù)到達的特征,采用本專利技術(shù)的網(wǎng)絡數(shù)據(jù)接收方法進行接收,效果更為顯著。附圖說明圖1為本專利技術(shù)網(wǎng)絡數(shù)據(jù)接收方法一較佳實施例中定時處理流程圖;圖2為圖1所示實施例中流媒體接收派生類的處理流程圖。具體實施例方式以下參照附圖,并舉具體實施例對本專利技術(shù)進行詳細說明。本專利技術(shù)的這種網(wǎng)絡數(shù)據(jù)的接收方法,通過增加定時處理流程和接收者對象處理流程,與現(xiàn)有操作系統(tǒng)的數(shù)據(jù)接收處理流程相配合,實現(xiàn)了以固定間隔地周期性接收網(wǎng)絡數(shù)據(jù),從而降低了網(wǎng)絡數(shù)據(jù)接收過程中的系統(tǒng)消耗。這種方法特別適合于流媒體數(shù)據(jù)的網(wǎng)絡接收。這是因為流媒體數(shù)據(jù)有ー個固有特征,即媒體數(shù)據(jù)播放是以幀為單位進行,幀與幀之間是有時間間隔的。對于流媒體數(shù)據(jù)而言,是指媒體源端開始網(wǎng)絡發(fā)送一幀時,產(chǎn)生大量網(wǎng)絡數(shù)據(jù)包,占用較大網(wǎng)絡帶寬,而之后,在媒體源端發(fā)送下ー幀之前,網(wǎng)絡數(shù)據(jù)流量很少。并且在網(wǎng)絡延遲上,也是以幀為統(tǒng)計単位的,只有ー幀完全接收完整時,才能統(tǒng)計這一幀的延遲。由于流媒體數(shù)據(jù)的這個特征,流媒體數(shù)據(jù)到達網(wǎng)絡接收端時,也表現(xiàn)為周期性的大量數(shù)據(jù)到達。所以利用操作系統(tǒng)套接字提供的可設置接收緩沖和數(shù)據(jù)接收處理流程,以固定時間間隔地周期性接收流媒體數(shù)據(jù),能夠降低系統(tǒng)消耗而又不會人為降低呑吐率和增加延時。當然,這種接收方式并非僅適合流媒體數(shù)據(jù),對于普通數(shù)據(jù),如果單位數(shù)據(jù)包延遲要求并不太高而流量穩(wěn)定時,都是適用的,特別是希望優(yōu)化網(wǎng)絡接收的系統(tǒng)CPU占用率吋。如后臺服務器之間穩(wěn)定的數(shù)據(jù)交換時使用。以下以流媒體數(shù)據(jù)的接收過程為例,對本專利技術(shù)進行詳細說明。本實施例中的流媒體數(shù)據(jù)的接收方法,主要包括兩方面的內(nèi)容:1、定時器或者周期性穩(wěn)定觸發(fā)的其他裝置實現(xiàn)定時處理流程,該定時處理流程能以毫秒級的精度,固定周期地驅(qū)動網(wǎng)絡數(shù)據(jù)接收處理流程。2、實現(xiàn)網(wǎng)絡接收接口數(shù)據(jù)接收的C++基類一CMediaRecver及派生類,在基類中封裝開始接收(StartRecv)接口和停止接收(StopRecv)接ロ,該CMediaRecver派生類流程就是ー種接收者對象處理流程,在該CMediaRecver派生類流程中定義需要具體實現(xiàn)的操作系統(tǒng)的數(shù)據(jù)接收處理流程。其中,操作系統(tǒng)的數(shù)據(jù)接收處理流程與現(xiàn)有技術(shù)相同,這里不再贅述。以下對本實施例的定時處理流程和CMediaRecver派生類流程分別進行詳細說明。本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種網(wǎng)絡數(shù)據(jù)的接收方法,其特征在于:包括定時處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程;所述定時處理流程在每次定時時間到時,檢查預設的接收者對象注冊表,在接收對象注冊表不為空時,調(diào)用其中每個接收者的接收接口,驅(qū)動各個接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;所述接收者對象處理流程在一個接收會話初始化后,設置使用的套接字,,將該會話的接收者對象添加到所述接收者對象注冊表中,并由定時處理流程驅(qū)動在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在所述的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會話的接收者對象從接收者對象注冊表中刪除;所述數(shù)據(jù)接收流程為操作系統(tǒng)套接字提供的數(shù)據(jù)接收流程。
【技術(shù)特征摘要】
1.一種網(wǎng)絡數(shù)據(jù)的接收方法,其特征在于:包括定時處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程; 所述定時處理流程在每次定時時間到時,檢查預設的接收者對象注冊表,在接收對象注冊表不為空時,調(diào)用其中每個接收者的接收接口,驅(qū)動各個接收接口執(zhí)行所述數(shù)據(jù)接收處理流程; 所述接收者對象處理流程在一個接收會話初始化后,設置使用的套接字,,將該會話的接收者對象添加到所述接收者對象注冊表中,并由定時處理流程驅(qū)動在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在所述的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會話的接收者對象從接收者對象注冊表中刪除; 所述數(shù)據(jù)接收流程為操作系統(tǒng)套接字提供的數(shù)據(jù)接收流程。2.按權(quán)利要求1所述的接收方法,其特征在于,所述定時處理流程包括如下步驟: Al、建立并啟動定時器; A2、等待定時器超時; A3、在定時器超時時,重啟定時器;并檢查接收者對象注冊表,判斷其是否為空,如果為空,則返回步驟A2 ;否則,執(zhí)行步驟A4 ; A4、調(diào)用接收者對象注冊表中每個接收者的接收接口,驅(qū)動各個接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;返回步驟A2。3.按權(quán)利要求2所述的接收方法,其特征在于:所述步驟A2中,在等待定時器超時前,還包括:判斷系統(tǒng)是否關(guān)閉的步 驟,在系統(tǒng)關(guān)閉時注銷定時器,結(jié)束流程。4.按權(quán)利要求2所述的接收方法,其特征在于: 所述接收者對象處理流程為C++的一個數(shù)據(jù)接收基類的派生類流程; 所述數(shù)據(jù)接收基類中封裝了開始接收接口和停止接收接口; 該派生類流程包括如下步驟: B1、接收會話初始化后,設置該會話使...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:周明偉,何林強,張興明,傅利泉,朱江明,吳軍,吳堅,
申請(專利權(quán))人:浙江大華技術(shù)股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。