專利名稱:一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)上的數(shù)據(jù)傳輸技術(shù),特別涉及一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法。
背景技術(shù):
目前,利用網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸已經(jīng)普及。例如:在視頻會(huì)議和視頻監(jiān)控領(lǐng)域,視頻或者音頻采樣數(shù)據(jù),通過特定的編碼算法編碼之后,形成的特定格式的數(shù)字媒體,往往需要通過網(wǎng)絡(luò)傳輸至網(wǎng)絡(luò)上的另外一端進(jìn)行播放,這里傳輸?shù)臄?shù)據(jù)就是一種流媒體數(shù)據(jù)。而作為流媒體的網(wǎng)絡(luò)接收端,其網(wǎng)絡(luò)接收性能直接影響到系統(tǒng)的整體性能?,F(xiàn)有技術(shù)中,網(wǎng)絡(luò)數(shù)據(jù)的接收方法通常采用以下兩種:第一種:通過阻塞式的接收方式進(jìn)行接收。這是最為簡單常用的一種網(wǎng)絡(luò)數(shù)據(jù)接收方式,即接收端應(yīng)用程序?yàn)槊恳粋€(gè)網(wǎng)絡(luò)套接字建立一個(gè)線程,該線程對該套接字執(zhí)行系統(tǒng)調(diào)用數(shù)據(jù)接收處理流程(recv),以進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的接收。若沒有收到數(shù)據(jù),則線程一直阻塞在對recv的調(diào)用上,直至收到數(shù)據(jù)為止。這種方式需要建立大量的線程專門用于網(wǎng)絡(luò)數(shù)據(jù)的接收,雖然有系統(tǒng)負(fù)荷允許的前提下,數(shù)據(jù)時(shí)延較小,但由于其大量消耗系統(tǒng)資源,整體性能極其受限,并發(fā)度比較低。第二種:通過操作系統(tǒng)支持的多路復(fù)用技術(shù)進(jìn)行接收。這種方式是由一個(gè)線程監(jiān)測應(yīng)用中的所有網(wǎng)絡(luò)套接字,查看是否有數(shù)據(jù)到達(dá),一旦檢測到有數(shù)據(jù)到達(dá),立即進(jìn)行接收。這種方式表面上資源消耗低,數(shù)據(jù)接收時(shí)延小,但在實(shí)際使用過程中會(huì)發(fā)現(xiàn),監(jiān)測網(wǎng)絡(luò)套接字的線程本身的監(jiān)測操作會(huì)消耗大量系統(tǒng)資源,同時(shí),當(dāng)監(jiān)測到某個(gè)套接字上有數(shù)據(jù)到達(dá)并去接收時(shí),往往收到的數(shù)據(jù)量較小(因?yàn)閯倓傆幸恍〔糠謹(jǐn)?shù)據(jù)到達(dá)就被監(jiān)測至IJ,并立即去接收),從而造成每次的接收調(diào)用recv都只能收到很少的數(shù)據(jù),而接收的次數(shù)卻相當(dāng)頻繁,這又進(jìn)一步降低了系統(tǒng)的效率,實(shí)際應(yīng)用效果會(huì)比較差。上述兩種網(wǎng)絡(luò)數(shù)據(jù)的接收方法對于流媒體數(shù)據(jù)的接收來說,缺陷更為明顯。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,以降低包括流媒體數(shù)據(jù)在內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)接收過程中的系統(tǒng)資源消耗。為達(dá)到上述目的,本發(fā)明提供了一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,包括:定時(shí)處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程。所述定時(shí)處理流程在每次定時(shí)時(shí)間到時(shí),檢查預(yù)設(shè)的接收者對象注冊表,在接收對象注冊表不為空時(shí),調(diào)用其中每個(gè)接收者的接收接口,驅(qū)動(dòng)各個(gè)接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;所述接收者對象處理流程在一個(gè)接收會(huì)話初始化后,設(shè)置使用的套接字,,將該會(huì)話的接收者對象添加到所述接收者對象注冊表中,并由定時(shí)處理流程驅(qū)動(dòng)在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在所述的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會(huì)話的接收者對象從接收者對象注冊表中刪除;所述數(shù)據(jù)接收流程為操作系統(tǒng)套接字提供的數(shù)據(jù)接收流程。較佳地,所述定時(shí)處理流程包括如下步驟:Al、建立并啟動(dòng)定時(shí)器;A2、等待定時(shí)器超時(shí);A3、在定時(shí)器超時(shí)時(shí),重啟定時(shí)器;并檢查接收者對象注冊表,判斷其是否為空,如果為空,則返回步驟A2 ;否則,執(zhí)行步驟A4 ;A4、調(diào)用接收者對象注冊表中每個(gè)接收者的接收接ロ,驅(qū)動(dòng)各個(gè)接收接ロ執(zhí)行所述數(shù)據(jù)接收處理流程;返回步驟A2。較佳地,所述步驟A2中,在等待定時(shí)器超時(shí)前,還包括:判斷系統(tǒng)是否關(guān)閉的步驟,在系統(tǒng)關(guān)閉時(shí)注銷定時(shí)器,結(jié)束流程。較佳地,所述接收接ロ為套接字;所述接收者對象處理流程為C++的一個(gè)數(shù)據(jù)接收基類的派生類流程;所述數(shù)據(jù)接收基類中封裝了開始接收接口和停止接收接ロ ;該派生類流程包括如下步驟:B1、接收會(huì)話初始化后,設(shè)置該會(huì)話使用的套接字的接收緩沖區(qū);B2、調(diào)用數(shù)據(jù)接收基類中的開始接收接ロ,將該會(huì)話的接收者對象添加到所述接收者對象注冊表中;B3、判斷是否繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù),如果是,則執(zhí)行步驟B4 ;否則,執(zhí)行步驟B5 ;B4、定時(shí)處理流程驅(qū)動(dòng)在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程后,返回步驟B3 ;B5、調(diào)用數(shù)據(jù)接收基類中的停止接收接ロ,將該會(huì)話的接收者對象從接收者對象注冊表中刪除后,結(jié)束流程。較佳地,所述步驟BI中,套接字接收緩沖區(qū)的大小根據(jù)網(wǎng)絡(luò)數(shù)據(jù)平均碼流的大小和定時(shí)器時(shí)間間隔設(shè)置。較佳地,若系統(tǒng)具有多個(gè)CPU,則在定時(shí)處理流程中建立與CPU數(shù)量相同的定時(shí)器;每個(gè)定時(shí)器對應(yīng)設(shè)置一個(gè)接收者對象注冊表;每個(gè)定時(shí)器超時(shí)時(shí)檢查各自對應(yīng)的接收者對象注冊表;所述步驟B2中,數(shù)據(jù)接收基類中的開始接收接ロ,將該會(huì)話的接收者對象添加到最不繁忙的接收者對象注冊表中。較佳地,平均每個(gè)定時(shí)器由ー個(gè)線程承載,多個(gè)線程由多個(gè)CPU承載。較佳地,步驟B3所述判斷是否繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù)為:判斷是否數(shù)據(jù)接收完畢或者判斷是否網(wǎng)絡(luò)異常;如果數(shù)據(jù)接收完畢或者網(wǎng)絡(luò)異常,則判定不繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù)。較佳地,所述接收對象注冊表由ー隊(duì)列實(shí)現(xiàn),其中保存了各個(gè)接收會(huì)話對應(yīng)的所述派生類實(shí)例的指針。較佳地,所述定時(shí)器定時(shí)時(shí)間為10-20毫秒。由上述的技術(shù)方案可見,本發(fā)明的這種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,通過增加定時(shí)處理流程和接收者對象處理流程,與現(xiàn)有操作系統(tǒng)套接字的數(shù)據(jù)接收處理流程相配合,實(shí)現(xiàn)了以固定間隔地周期性接收網(wǎng)絡(luò)數(shù)據(jù),從而降低了網(wǎng)絡(luò)數(shù)據(jù)接收過程中的系統(tǒng)消耗。特別是對于流媒體數(shù)據(jù),由于流媒體數(shù)據(jù)本身具有周期性大量數(shù)據(jù)到達(dá)的特征,采用本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)接收方法進(jìn)行接收,效果更為顯著。
圖1為本發(fā)明網(wǎng)絡(luò)數(shù)據(jù)接收方法一較佳實(shí)施例中定時(shí)處理流程圖;圖2為圖1所示實(shí)施例中流媒體接收派生類的處理流程圖。
具體實(shí)施例方式以下參照附圖,并舉具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明的這種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,通過增加定時(shí)處理流程和接收者對象處理流程,與現(xiàn)有操作系統(tǒng)的數(shù)據(jù)接收處理流程相配合,實(shí)現(xiàn)了以固定間隔地周期性接收網(wǎng)絡(luò)數(shù)據(jù),從而降低了網(wǎng)絡(luò)數(shù)據(jù)接收過程中的系統(tǒng)消耗。這種方法特別適合于流媒體數(shù)據(jù)的網(wǎng)絡(luò)接收。這是因?yàn)榱髅襟w數(shù)據(jù)有ー個(gè)固有特征,即媒體數(shù)據(jù)播放是以幀為單位進(jìn)行,幀與幀之間是有時(shí)間間隔的。對于流媒體數(shù)據(jù)而言,是指媒體源端開始網(wǎng)絡(luò)發(fā)送一幀時(shí),產(chǎn)生大量網(wǎng)絡(luò)數(shù)據(jù)包,占用較大網(wǎng)絡(luò)帶寬,而之后,在媒體源端發(fā)送下ー幀之前,網(wǎng)絡(luò)數(shù)據(jù)流量很少。并且在網(wǎng)絡(luò)延遲上,也是以幀為統(tǒng)計(jì)単位的,只有ー幀完全接收完整時(shí),才能統(tǒng)計(jì)這一幀的延遲。由于流媒體數(shù)據(jù)的這個(gè)特征,流媒體數(shù)據(jù)到達(dá)網(wǎng)絡(luò)接收端時(shí),也表現(xiàn)為周期性的大量數(shù)據(jù)到達(dá)。所以利用操作系統(tǒng)套接字提供的可設(shè)置接收緩沖和數(shù)據(jù)接收處理流程,以固定時(shí)間間隔地周期性接收流媒體數(shù)據(jù),能夠降低系統(tǒng)消耗而又不會(huì)人為降低呑吐率和增加延時(shí)。當(dāng)然,這種接收方式并非僅適合流媒體數(shù)據(jù),對于普通數(shù)據(jù),如果單位數(shù)據(jù)包延遲要求并不太高而流量穩(wěn)定時(shí),都是適用的,特別是希望優(yōu)化網(wǎng)絡(luò)接收的系統(tǒng)CPU占用率吋。如后臺服務(wù)器之間穩(wěn)定的數(shù)據(jù)交換時(shí)使用。以下以流媒體數(shù)據(jù)的接收過程為例,對本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例中的流媒體數(shù)據(jù)的接收方法,主要包括兩方面的內(nèi)容:1、定時(shí)器或者周期性穩(wěn)定觸發(fā)的其他裝置實(shí)現(xiàn)定時(shí)處理流程,該定時(shí)處理流程能以毫秒級的精度,固定周期地驅(qū)動(dòng)網(wǎng)絡(luò)數(shù)據(jù)接收處理流程。2、實(shí)現(xiàn)網(wǎng)絡(luò)接收接口數(shù)據(jù)接收的C++基類一CMediaRecver及派生類,在基類中封裝開始接收(StartRecv)接口和停止接收(StopRecv)接ロ,該CMediaRecver派生類流程就是ー種接收者對象處理流程,在該CMediaRecver派生類流程中定義需要具體實(shí)現(xiàn)的操作系統(tǒng)的數(shù)據(jù)接收處理流程。其中,操作系統(tǒng)的數(shù)據(jù)接收處理流程與現(xiàn)有技術(shù)相同,這里不再贅述。以下對本實(shí)施例的定時(shí)處理流程和CMediaRecver派生類流程分別進(jìn)行詳細(xì)說明。本實(shí)施例的定時(shí)處理流程如圖1所示,在系統(tǒng)啟動(dòng)后,執(zhí)行如下步驟:步驟101、建立并啟動(dòng)定時(shí)器。本實(shí)施例中,定時(shí)器的定時(shí)時(shí)間參照流媒體數(shù)據(jù)的固有特征,設(shè)置為10-20毫秒,假設(shè)本實(shí)施例中設(shè)置為20毫秒。本實(shí)施例中,假設(shè)系統(tǒng)為單CPU系統(tǒng),則只需建立并啟動(dòng)一個(gè)定時(shí)器。在其他實(shí)施例中,如果系統(tǒng)為多CPU系統(tǒng),則可以將定時(shí)器的數(shù)量設(shè)置為與CPU的數(shù)量相同,ー個(gè)CPU對應(yīng)建立并啟動(dòng)一個(gè)定時(shí)器。 另外,本實(shí)施例中平均每個(gè)定時(shí)器由ー個(gè)線程承載,多個(gè)線程由多個(gè)CPU承載,從而更好地利用了多CPU的運(yùn)算資源。步驟102、判斷系統(tǒng)是否關(guān)閉,如果是,則執(zhí)行步驟106 ;否則執(zhí)行步驟103。本步驟中可以通過判斷是否收到上層應(yīng)用發(fā)送的系統(tǒng)關(guān)閉命令來判斷系統(tǒng)是否關(guān)閉。步驟103、等待定時(shí)器超時(shí),在定時(shí)器超時(shí)時(shí),重啟定時(shí)器并執(zhí)行步驟104。步驟104、判斷接收者對象注冊表是否為空,如果是,則返回步驟102 ;否則執(zhí)行步驟 105。實(shí)際應(yīng)用中,接收對象注冊表中可以由ー個(gè)隊(duì)列或者其他數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),其中的內(nèi)容是在CMediaRecver派生類流程中,由StartRecv接ロ寫入的接收會(huì)話對應(yīng)的CMediaRecver派生類實(shí)例的指針。若系統(tǒng)僅啟動(dòng)了ー個(gè)定時(shí)器,則該隊(duì)列中包含整個(gè)系統(tǒng)的接收者的所有CMediaRecver派生類實(shí)例。若系統(tǒng)存在多個(gè)CPU,而啟動(dòng)了多個(gè)定時(shí)器,則每個(gè)定時(shí)器會(huì)有單獨(dú)的一個(gè)隊(duì)列與其對應(yīng)。CMediaRecver基類中的StartRecv會(huì)自動(dòng)完成將自身注冊入最不繁忙的那個(gè)定時(shí)器的接收對象注冊表隊(duì)列中。步驟105、調(diào)用接收者對象注冊表中各個(gè)接收者對象的一個(gè)接收接ロ,的,派生類在此接口中再操作套接字執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)接收處理流程;返回步驟102。在本實(shí)施例中,接收接ロ為操作系統(tǒng)的套接字。步驟106、注銷定時(shí)器,結(jié)束流程。本實(shí)施例中,CMediaRecver派生類流程如圖2所示,在接收會(huì)話初始化完成后,執(zhí)行如下步驟:步驟201、設(shè)置該會(huì)話使用的套接字的接收緩沖區(qū)。本實(shí)施例中,會(huì)將套接字的接收緩沖區(qū)設(shè)置較大。具體設(shè)置的值可以根據(jù)數(shù)據(jù)的平均碼流大小、設(shè)置的定時(shí)器時(shí)間間隔而定。若時(shí)間間隔為20毫秒,而碼流較大,可以將套接字的接收緩沖區(qū)設(shè)置為較大,如200k。若設(shè)置的定時(shí)器時(shí)間間隔較小,如10毫秒,則可以適當(dāng)減少套接字的接收緩沖區(qū)的大小。為方便起見,在系統(tǒng)允許范圍內(nèi),將套接字的接收緩沖區(qū)設(shè)置為最大即可。步驟202、調(diào)用CMediaRecver基類的開始接收接ロ,將會(huì)話接收者對象添加到接收者對象注冊表。本實(shí)施例中,就是將接收會(huì)話對應(yīng)的CMediaRecver派生類實(shí)例的指針,添加到接收對象注冊表隊(duì)列中。在其他實(shí)施例中,若系統(tǒng)存在多個(gè)CPU,而啟動(dòng)了多個(gè)定時(shí)器的情況下,CMediaRecver基類中的StartRecv會(huì)自動(dòng)完成將自身注冊入最不繁忙的那個(gè)定時(shí)器的接收對象注冊表隊(duì)列中。步驟203、判斷是否繼續(xù)接收流媒體數(shù)據(jù),如果是,則執(zhí)行步驟204 ;否則,執(zhí)行步驟 205 ;本步驟中,具體為判斷是否數(shù)據(jù)接收完畢或者判斷是否網(wǎng)絡(luò)異常;如果數(shù)據(jù)接收完畢或者網(wǎng)絡(luò)異常,則判定不繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù)。
步驟204、由定時(shí)器處理流程驅(qū)動(dòng),調(diào)用套接字,執(zhí)行數(shù)據(jù)接收處理流程后,返回步驟 203。步驟205、調(diào)用CMediaRecver基類的停止接收接ロ,將會(huì)話接收者對象從接收者對象注冊表中刪除后,結(jié)束流程。本步驟中,就是將接收對象注冊 表隊(duì)列中,該接收會(huì)話對應(yīng)的CMediaRecver派生類實(shí)例的指針刪除。本實(shí)施例的流媒體接收方法,其定時(shí)器間隔是可調(diào)整的,一般來說,20毫秒的間隔能處理普遍的應(yīng)用。這 是建立在操作系統(tǒng)套接字接收緩沖區(qū)一般可以設(shè)置到200k字節(jié)以上,而平均每20毫秒?yún)f(xié)議棧接收200k字節(jié)數(shù)據(jù)量,則達(dá)到系統(tǒng)接收一路流媒體時(shí)的最大吞吐量,約為78Mbps。若系統(tǒng)處理的可預(yù)見的最大網(wǎng)絡(luò)吞吐量接近或大于此值,則可以降低定時(shí)器超時(shí)時(shí)間間隔,如由20毫秒修改為10毫秒。由上述的實(shí)施例可見,本發(fā)明的這種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,不僅能夠在不降低網(wǎng)絡(luò)吞吐率且不增加數(shù)據(jù)延時(shí)的情況下,大幅降低接收進(jìn)程的系統(tǒng)資源消耗,從而有效地提高網(wǎng)絡(luò)數(shù)據(jù)的接收性能。而且處理邏輯簡單,具有更好的可擴(kuò)展性和可維護(hù)性。
權(quán)利要求
1.一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,其特征在于:包括定時(shí)處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程; 所述定時(shí)處理流程在每次定時(shí)時(shí)間到時(shí),檢查預(yù)設(shè)的接收者對象注冊表,在接收對象注冊表不為空時(shí),調(diào)用其中每個(gè)接收者的接收接口,驅(qū)動(dòng)各個(gè)接收接口執(zhí)行所述數(shù)據(jù)接收處理流程; 所述接收者對象處理流程在一個(gè)接收會(huì)話初始化后,設(shè)置使用的套接字,,將該會(huì)話的接收者對象添加到所述接收者對象注冊表中,并由定時(shí)處理流程驅(qū)動(dòng)在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在所述的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會(huì)話的接收者對象從接收者對象注冊表中刪除; 所述數(shù)據(jù)接收流程為操作系統(tǒng)套接字提供的數(shù)據(jù)接收流程。
2.按權(quán)利要求1所述的接收方法,其特征在于,所述定時(shí)處理流程包括如下步驟: Al、建立并啟動(dòng)定時(shí)器; A2、等待定時(shí)器超時(shí); A3、在定時(shí)器超時(shí)時(shí),重啟定時(shí)器;并檢查接收者對象注冊表,判斷其是否為空,如果為空,則返回步驟A2 ;否則,執(zhí)行步驟A4 ; A4、調(diào)用接收者對象注冊表中每個(gè)接收者的接收接口,驅(qū)動(dòng)各個(gè)接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;返回步驟A2。
3.按權(quán)利要求2所述的接收方法,其特征在于:所述步驟A2中,在等待定時(shí)器超時(shí)前,還包括:判斷系統(tǒng)是否關(guān)閉的步 驟,在系統(tǒng)關(guān)閉時(shí)注銷定時(shí)器,結(jié)束流程。
4.按權(quán)利要求2所述的接收方法,其特征在于: 所述接收者對象處理流程為C++的一個(gè)數(shù)據(jù)接收基類的派生類流程; 所述數(shù)據(jù)接收基類中封裝了開始接收接口和停止接收接口; 該派生類流程包括如下步驟: B1、接收會(huì)話初始化后,設(shè)置該會(huì)話使用的套接字的接收緩沖區(qū); B2、調(diào)用數(shù)據(jù)接收基類中的開始接收接口,將該會(huì)話的接收者對象添加到所述接收者對象注冊表中; B3、判斷是否繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù),如果是,則執(zhí)行步驟B4 ;否則,執(zhí)行步驟B5 ; B4、定時(shí)處理流程驅(qū)動(dòng)在所述接收接口中操作套接字執(zhí)行數(shù)據(jù)接收處理流程后,返回步驟B3 ; B5、調(diào)用數(shù)據(jù)接收基類中的停止接收接口,將該會(huì)話的接收者對象從接收者對象注冊表中刪除后,結(jié)束流程。
5.按權(quán)利要求4所述的接收方法,其特征在于,所述步驟BI中,套接字接收緩沖區(qū)的大小根據(jù)網(wǎng)絡(luò)數(shù)據(jù)平均碼流的大小和定時(shí)器時(shí)間間隔設(shè)置。
6.按權(quán)利要求4所述的接收方法,其特征在于,若系統(tǒng)具有多個(gè)CPU,則在定時(shí)處理流程中建立與CPU數(shù)量相同的定時(shí)器;每個(gè)定時(shí)器對應(yīng)設(shè)置一個(gè)接收者對象注冊表;每個(gè)定時(shí)器超時(shí)時(shí)檢查各自對應(yīng)的接收者對象注冊表; 所述步驟B2中,數(shù)據(jù)接收基類中的開始接收接口,將該會(huì)話的接收者對象添加到最不繁忙的接收者對象注冊表中。
7.按權(quán)利要求6所述的接收方法,其特征在于,平均每個(gè)定時(shí)器由一個(gè)線程承載,多個(gè)線程由多個(gè)CPU承載。
8.按權(quán)利要求4所述的接收方法,其特征在于,步驟B3所述判斷是否繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù)為:判斷是否數(shù)據(jù)接收完畢或者判斷是否網(wǎng)絡(luò)異常;如果數(shù)據(jù)接收完畢或者網(wǎng)絡(luò)異常,則判定不繼續(xù)接收網(wǎng)絡(luò)數(shù)據(jù)。
9.按權(quán)利要求4-8任一項(xiàng)所述的接收方法,其特征在于,所述接收對象注冊表由一隊(duì)列實(shí)現(xiàn),其中保存了各個(gè)接收會(huì)話對應(yīng)的所述派生類實(shí)例的指針。
10.按權(quán)利要求1-8任一項(xiàng)所述的接收方法,其特征在于,所述定時(shí)器定時(shí)時(shí)間為10-20毫秒 。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)數(shù)據(jù)的接收方法,包括定時(shí)處理流程、接收者對象處理流程和數(shù)據(jù)接收處理流程;所述定時(shí)處理流程在每次定時(shí)時(shí)間到時(shí),檢查接收者對象注冊表,在接收對象注冊表不為空時(shí),調(diào)用其中每個(gè)接收者的接收接口,驅(qū)動(dòng)各個(gè)接收接口執(zhí)行所述數(shù)據(jù)接收處理流程;所述接收者對象處理流程在一個(gè)接收會(huì)話初始化后,設(shè)置使用的套接字,將該會(huì)話的接收者對象添加到所述接收者對象注冊表中,并由定時(shí)處理流程驅(qū)動(dòng)操作套接字執(zhí)行數(shù)據(jù)接收處理流程,在對應(yīng)的接收接口執(zhí)行完數(shù)據(jù)接收處理流程后,將該會(huì)話的接收者對象從接收者對象注冊表中刪除。應(yīng)用本發(fā)明,能夠有效地降低網(wǎng)絡(luò)數(shù)據(jù)接收過程中的系統(tǒng)資源消耗。
文檔編號H04L29/06GK103095646SQ201110336749
公開日2013年5月8日 申請日期2011年10月28日 優(yōu)先權(quán)日2011年10月28日
發(fā)明者周明偉, 何林強(qiáng), 張興明, 傅利泉, 朱江明, 吳軍, 吳堅(jiān) 申請人:浙江大華技術(shù)股份有限公司