一種數(shù)據(jù)傳輸方法及電子設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)傳輸方法,用于提高數(shù)據(jù)傳輸效率。所述方法包括:在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,為該M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù);通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。本發(fā)明還公開了用于所述方法的電子設(shè)備。
【專利說明】一種數(shù)據(jù)傳輸方法及電子設(shè)備
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及通信領(lǐng)域,特別涉及一種數(shù)據(jù)傳輸方法及電子設(shè)備。
【背景技術(shù)】
[0002]在實(shí)現(xiàn)HTTP(超文本傳輸協(xié)議)的P2P(peer to peer,點(diǎn)對(duì)點(diǎn)傳輸)時(shí),由于HTTP是短連接,所以每次建立連接時(shí)都需要專門進(jìn)行NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換),即將IP數(shù)據(jù)包頭中的IP地址轉(zhuǎn)換為另一個(gè)IP地址,以實(shí)現(xiàn)私有網(wǎng)絡(luò)訪問公共網(wǎng)絡(luò)的功能。由于HTTP連接是并發(fā)的,可能會(huì)同時(shí)存在多個(gè)HTTP連接,而這些HTTP連接都需要進(jìn)行NAT。顯然,這樣會(huì)降低連接效率,較為耗費(fèi)時(shí)間。
[0003]現(xiàn)有的解決方案:通過建立在公共網(wǎng)絡(luò)中的服務(wù)器進(jìn)行中轉(zhuǎn)。
[0004]兩個(gè)局域網(wǎng)中的設(shè)備均可以預(yù)先和建立在公共網(wǎng)絡(luò)中的一服務(wù)器建立HTTP連接,從而可以使在這兩個(gè)設(shè)備之間傳輸?shù)臄?shù)據(jù)通過服務(wù)器中轉(zhuǎn)后到達(dá)對(duì)方。由于服務(wù)器建立在公網(wǎng)上,所以不需要在建立HTTP連接時(shí)進(jìn)行NAT。
[0005]該方案的缺點(diǎn)是:
[0006](I)傳輸?shù)臄?shù)據(jù)都需要通過服務(wù)器進(jìn)行中轉(zhuǎn),其傳輸效率顯然沒有P2P的傳輸性倉泛1? ;
[0007](2)對(duì)于該服務(wù)器來說壓力很大。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提供 一種數(shù)據(jù)傳輸方法及電子設(shè)備,用于解決現(xiàn)有技術(shù)中數(shù)據(jù)傳輸效率較低的技術(shù)問題,實(shí)現(xiàn)了提高數(shù)據(jù)傳輸效率的技術(shù)效果。
[0009]一種數(shù)據(jù)傳輸方法,包括以下步驟:
[0010]在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,為該M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù);
[0011]通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0012]較佳的,在為該M個(gè)端口連接設(shè)置NAT穿越之后還包括步驟:當(dāng)所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù)時(shí),關(guān)閉所述N個(gè)端口連接;其中,N為不大于M的自然數(shù)。
[0013]較佳的,從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接的步驟包括:從已建立的所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接;或從已建立的所述M個(gè)端口連接中選擇一個(gè)處于空閑狀態(tài)的特定的端口連接作為所述第
一端口連接。
[0014]較佳的,如果所述數(shù)據(jù)為UDP數(shù)據(jù),建立M個(gè)端口連接的步驟包括:
[0015]建立至少一個(gè)總連 接,在所述至少一個(gè)總端口連接中包括有所述M個(gè)端口連接,該M個(gè)端口連接通過在所述總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分,所述為該M個(gè)端口連接設(shè)置NAT穿越的步驟包括:為所述總端口連接設(shè)置NAT穿越。
[0016]較佳的,從已建立的所述M個(gè)端口連接中選擇一個(gè)第一端口連接的步驟包括:從所述M個(gè)端口連接中選擇空閑的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
[0017]較佳的,所述端口連接為UDP連接或RUDP連接。
[0018]較佳的,根據(jù)所述第一端口連接及接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端之后還包括步驟:通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。
[0019]較佳的,在通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接之后還包括步驟:當(dāng)所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù)時(shí),關(guān)閉所述第一端口連接。
[0020]較佳的,所述端口連接為HTTP短連接。
[0021]—種電子設(shè)備,所述電子設(shè)備包括:
[0022]選擇模塊,用于在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,為該M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接⑷為正整數(shù);
[0023]傳輸模塊,用于通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0024]較佳的,所述電子設(shè)備還包括關(guān)閉模塊,用于:當(dāng)所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù)時(shí),關(guān)閉所述N個(gè)端口連接;其中,N為不大于M的自然數(shù)。
[0025]較佳的,所述選擇模塊具體用于:從已建立的所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接;或從已建立的所述M個(gè)端口連接中選擇一個(gè)處于空閑狀態(tài)的特定的端口連接作為所述第一端口連接。
[0026]較佳的,如果所述數(shù)據(jù)為用戶數(shù)據(jù)包協(xié)議UDP數(shù)據(jù),所述選擇模塊具體用于:建立至少一個(gè)總端口連接,在所述至少一個(gè)總端口連接中包括有所述M個(gè)端口連接,該M個(gè)端口連接通過在所述總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分;及為所述總端口連接設(shè)置NAT穿越。
[0027]較佳的,所述選擇模塊具體用于:從所述M個(gè)端口連接中選擇空閑的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
[0028]較佳的,所述端口連接為UDP連接或RUDP連接。
[0029]較佳的,所述傳輸模塊還用于:通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。
[0030]較佳的,所述電子設(shè)備還包括關(guān)閉模塊,用于:當(dāng)所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù)時(shí),關(guān)閉所述第一端口連接。
[0031]較佳的,所述端口連接為超文本傳輸協(xié)議HTTP短連接。
[0032]本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法可以包括:建立M個(gè)端口連接,對(duì)所述M個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接⑷為正整數(shù);通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0033]先建立M個(gè)端口連接,且對(duì)所述M個(gè)端口連接中的每個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),可以從已建立的M個(gè)端口連接中選擇一個(gè)所述第一端口連接進(jìn)行傳輸,所述第一端口連接可以是處于空閑狀態(tài)的端口連接。這樣,預(yù)先建立有多個(gè)端口連接,在需要傳輸數(shù)據(jù)時(shí)直接從中選擇一個(gè)處于空閑狀態(tài)的端口連接進(jìn)行傳輸即可,無需在需要傳輸數(shù)據(jù)時(shí)再建立端口連接,節(jié)省了時(shí)間,提高了數(shù)據(jù)傳輸效率。且無需服務(wù)器中轉(zhuǎn),不會(huì)給服務(wù)器帶來較大負(fù)擔(dān),也因?yàn)椴恍枰ㄟ^服務(wù)器中轉(zhuǎn),進(jìn)一步提高了數(shù)據(jù)傳輸效率。
【專利附圖】
【附圖說明】
[0034]圖1為本發(fā)明實(shí)施例中數(shù)據(jù)傳輸方法的主要流程圖;
[0035]圖2為本發(fā)明實(shí)施例中電子設(shè)備的詳細(xì)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0036]本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法可以包括:建立M個(gè)端口連接,對(duì)所述M個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接⑷為正整數(shù);通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0037]先建立M個(gè)端口連接,且對(duì)所述M個(gè)端口連接中的每個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),可以從已建立的M個(gè)端口連接中選擇一個(gè)所述第一端口連接進(jìn)行傳輸,所述第一端口連接可以是處于空閑狀態(tài)的端口連接。這樣,預(yù)先建立有多個(gè)端口連接,在需要傳輸數(shù)據(jù)時(shí)直接從中選擇一個(gè)處于空閑狀態(tài)的端口連接進(jìn)行傳輸即可,無需在需要傳輸數(shù)據(jù)時(shí)再建立端口連接,節(jié)省了時(shí)間,提高了數(shù)據(jù)傳輸效率。且無需服務(wù)器中轉(zhuǎn),不會(huì)給服務(wù)器帶來較大負(fù)擔(dān),也因?yàn)椴恍枰ㄟ^服務(wù)器中轉(zhuǎn),進(jìn)一步提高了數(shù)據(jù)傳輸效率。
[0038]參見圖1,本發(fā)明實(shí)施例中數(shù)據(jù)傳輸方法的主要流程如下:
[0039]步驟101:在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,對(duì)所述M個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù)。
[0040]本發(fā)明實(shí)施例中,可以首先建立所述M個(gè)端口連接,在建立所述M個(gè)端口連接后,可以為所述M個(gè)端口連接中的每個(gè)端口連接均設(shè)置NAT穿越,以便所述M個(gè)端口連接中的每個(gè)端口連接都能直接進(jìn)行數(shù)據(jù)傳輸。
[0041 ] 本發(fā)明實(shí)施例中,在建立所述M個(gè)端口連接后,可以對(duì)所述M個(gè)端口連接進(jìn)行監(jiān)控。如果監(jiān)控到所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉所述N個(gè)端口連接。本發(fā)明實(shí)施例中,N可以是不大于M的自然數(shù)。
[0042]如果監(jiān)控到其中有的端口連接在所述第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉這些未接收到所述第一數(shù)據(jù)的端口連接,以盡量減輕公網(wǎng)中服務(wù)器的負(fù)擔(dān)。
[0043]本發(fā)明實(shí)施例中,所述第一端口連接可以是處于空閑狀態(tài)的端口連接。
[0044]例如,在建立所述M個(gè)端口連接后,如果要從中選擇所述第一端口連接,首先可以確定所述M個(gè)端口連接中處于空閑狀態(tài)的P個(gè)端口連接,再從所述P個(gè)端口連接中選擇所述第一端口連接。P可以是不大于M的自然數(shù)。
[0045]本發(fā)明實(shí)施例中,所述端口連接可以是HTTP (超文本傳輸協(xié)議)連接,或者也可以是UDP (用戶數(shù)據(jù)包協(xié)議)連接,或者也可以是其他類型的端口連接。
[0046]具體的,本發(fā)明實(shí)施例中,如果需要傳輸?shù)臄?shù)據(jù)為TCP數(shù)據(jù),則所述端口連接可以是HTTP短連接,如果需要傳輸?shù)臄?shù)據(jù)為m)P數(shù)據(jù),則所述端口連接可以是UDP連接或RUDP (可靠用戶數(shù)據(jù)報(bào)協(xié)議)連接。
[0047]下面以所述端口連接是UDP連接為例進(jìn)行說明。
[0048]可選的,本發(fā)明實(shí)施例中,在建立所述M個(gè)端口連接后,如果要從中選擇所述第一端口連接,一種可能的方式可以是從所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接,即從所述P個(gè)端口連接中任意選擇一個(gè)端口連接作為所述
第一端口連接。
[0049]可選的,本發(fā)明實(shí)施例中,在建立所述M個(gè)端口連接后,如果要從中選擇所述第一端口連接,另一種可能的方式可以是從所述M個(gè)端口連接中選擇一個(gè)處于空閑狀態(tài)的、特定的端口連接作為所述第一端口連接,即從所述P個(gè)端口連接中選擇一個(gè)特定的端口連接作為所述第一端口連接。
[0050]本發(fā)明實(shí)施例中,如果需要傳輸?shù)臄?shù)據(jù)為UDP數(shù)據(jù),則建立的所述M個(gè)端口連接可以組成至少一個(gè)總端口連接,即所述M個(gè)端口連接均為所述至少總端口連接的組成部分,在所述至少一個(gè)總端口連接的報(bào)文頭中可以設(shè)置有分別對(duì)應(yīng)于所述M個(gè)端口連接中每個(gè)端口連接的標(biāo)識(shí)信息,即,該M個(gè)端口連接可以通過在所述至少一個(gè)總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分。此時(shí),所述端口連接可以是UDP連接或RUDP連接。
[0051]例如,如果第一端口連接、第二端口連接和第三端口連接組成第一總端口連接,第四端口連接和第五端口連接組成第二端口連接,則所述第一總端口連接的報(bào)文頭中可以設(shè)置有分別對(duì)應(yīng)于所述第一端口連接、所述第二端口連接和所述第三端口連接的標(biāo)識(shí)信息,所述第二總端口連接的報(bào)文頭中可以設(shè)置有分別對(duì)應(yīng)于所述第四端口連接和所述第五端口連接的標(biāo)識(shí)信息。
[0052]此時(shí),如果要為該M個(gè)端口連接設(shè)置NAT穿越,具體可以是為所述至少一個(gè)總端口連接設(shè)置NAT穿越。
[0053]本發(fā)明實(shí)施例中,以建立一個(gè)總端口連接為例進(jìn)行說明,以所述總端口連接UDP連接為例。
[0054]即,本發(fā)明實(shí)施例中,如果需要傳輸?shù)臄?shù)據(jù)為UDP數(shù)據(jù),可以建立一個(gè)UDP連接,該UDP連接在這里稱為總UDP連接,所述M個(gè)UDP連接在這里可以繼續(xù)稱為UDP連接,或者也可以稱為UDP子連接,所有UDP子連接的數(shù)據(jù)都通過所述總UDP連接發(fā)送,并通過在UDP子連接的報(bào)文頭中加入不同的標(biāo)識(shí)信息來區(qū)分每個(gè)UDP子連接。
[0055]較佳的,本發(fā)明實(shí)施例中,所述總UDP連接中包括的UDP子連接可能是處于空閑狀態(tài)的UDP連接,也可能是處于工作狀態(tài)的UDP子連接。在從所述總UDP連接中選擇所述第一 UDP子連接時(shí),需要選擇的是處于空閑狀態(tài)的UDP子連接。本發(fā)明實(shí)施例中,所述標(biāo)識(shí)信息不僅可以用于唯一標(biāo)識(shí)一個(gè)UDP子連接,還可以表明相應(yīng)UDP子連接所處的狀態(tài)。這樣,在選擇時(shí)可以直接根據(jù)所述標(biāo)識(shí)信息進(jìn)行選擇。則,本發(fā)明實(shí)施例中,可以從所述M個(gè)端口連接中選擇處于空閑狀態(tài)的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息可以從已建立的所述總端口連接中選擇所述第一端口連接。
[0056]例如,M = 4,所述總UDP連接中共包括有四個(gè)UDP子連接,則所述總UDP連接的報(bào)文頭中可以設(shè)置有四個(gè)標(biāo)識(shí)信息,其中第一標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP子連接中的第一個(gè)UDP子連接,第二標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP子連接中的第二個(gè)UDP子連接,第三標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)子UDP連接中的第三個(gè)子UDP連接,第四標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP子連接中的第四個(gè)UDP子連接。
[0057]所述第一標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第一個(gè)UDP子連接,還可以表明所述第一個(gè)UDP子連接所處的狀態(tài),例如所述第一個(gè)UDP子連接處于空閑狀態(tài);所述第二標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第二個(gè)UDP子連接,還可以表明所述第二個(gè)UDP子連接所處的狀態(tài),例如所述第二個(gè)UDP子連接處于空閑狀態(tài);所述第三標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第三個(gè)UDP子連接,還可以表明所述第三個(gè)UDP子連接所處的狀態(tài),例如所述第三個(gè)Μ)Ρ子連接處于空閑狀態(tài);所述第四標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第四個(gè)UDP子連接,還可以表明所述第四個(gè)UDP子連接所處的狀態(tài),例如所述第四個(gè)UDP子連接處于空閑狀態(tài)。
[0058]這樣,如果要從所述總UDP連接中選擇所述第一 UDP子連接,即要從所述M個(gè)UDP子連接中選擇所述第一 UDP子連接,可以根據(jù)所述標(biāo)識(shí)信息從已建立的總UDP連接中選擇所述第一 m)P子連接。其中,所述第一 UDP子連接處于空閑狀態(tài)。
[0059]例如,M = 4,所述總UDP連接中共包括有四個(gè)UDP子連接,則所述總UDP連接的報(bào)文頭中可以設(shè)置有四個(gè)標(biāo)識(shí)信息。如果選擇的標(biāo)識(shí)信息為所述第一標(biāo)識(shí)信息,則表明本次選擇了所述第一個(gè)UDP子連接。
[0060]可選的,本發(fā)明實(shí)施例中,在建立所述M個(gè)UDP子連接后,如果所述M個(gè)UDP子連接組成所述總UDP連接,如果要從中選擇所述第一 UDP子連接,首先要從所述總UDP連接中選擇一個(gè)所述標(biāo)識(shí)信息,一種可能的方式可以是從所述總UDP連接中任意選擇一個(gè)處于空閑狀態(tài)的m)P子連接作為所述第一 UDP子連接。
[0061]可選的,本發(fā)明實(shí)施例中,在建立所述M個(gè)UDP子連接后,如果要從中選擇所述第一 UDP子連接,另一種可能的方式可以是從所述M個(gè)UDP子連接中選擇一個(gè)處于空閑狀態(tài)的、特定的m)P連接作為所述第一 UDP子連接。
[0062]步驟102:通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0063]本發(fā)明實(shí)施例中,在選擇所述第一端口連接后,可以根據(jù)所述第一端口連接及相應(yīng)的接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0064]其中,所述接收端信息可以包括在所述第一數(shù)據(jù)中。
[0065]在需要傳輸數(shù)據(jù)時(shí),可以直接從已建立的多個(gè)端口子連接中選擇一個(gè)處于空閑狀態(tài)的所述第一端口連接進(jìn)行傳輸,節(jié)省了臨時(shí)建立端口連接的時(shí)間。同時(shí),已建立的端口連接是已設(shè)置好NAT穿越的端口連接,無需再實(shí)現(xiàn)NAT穿越,同樣節(jié)省了時(shí)間,顯然提高了數(shù)據(jù)傳輸效率。
[0066]本發(fā)明實(shí)施例中,在根據(jù)所述第一端口連接及所述接收端信息將所述第一數(shù)據(jù)傳輸至所述接收端后,還可以通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。[0067]這樣做是為了便于后續(xù)繼續(xù)傳輸數(shù)據(jù),持續(xù)維持所述第一端口連接,后續(xù)如果還有數(shù)據(jù)需要傳輸則可以直接利用所述第一端口連接進(jìn)行傳輸,無需再選擇端口連接進(jìn)行傳輸,節(jié)省了選擇時(shí)間,提高了數(shù)據(jù)傳輸效率。
[0068]本發(fā)明實(shí)施例中,可以實(shí)時(shí)、定時(shí)或受觸發(fā)時(shí)對(duì)所述第一端口連接進(jìn)行監(jiān)控。如果檢測(cè)到在通過所述第一端口連接向所述接收端發(fā)送所述心跳信息,以維持與所述接收端之間的所述第一端口連接之后,所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù),則可以關(guān)閉所述第一端口連接。
[0069]如果所述第一端口連接在所述第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)都未接收到所述第二數(shù)據(jù),表明可能沒有需要傳輸?shù)臄?shù)據(jù),這時(shí)可以關(guān)閉所述第一端口連接,以節(jié)約出公網(wǎng)中服務(wù)器的接口,便于服務(wù)器向其他客戶端提供服務(wù),盡量避免資源浪費(fèi),做到資源的合理利用。
[0070]以下通過幾個(gè)具體的實(shí)施例介紹本發(fā)明中的數(shù)據(jù)傳輸方法,下面的實(shí)施例主要介紹了所述方法的幾種可能的應(yīng)用場(chǎng)景。需要說明的是,本發(fā)明中的實(shí)施例只用于解釋本發(fā)明,而不能用于限制本發(fā)明。凡是符合本發(fā)明思想的實(shí)施例均在本發(fā)明的保護(hù)范圍之內(nèi),本領(lǐng)域技術(shù)人員自然知道應(yīng)如何根據(jù)本發(fā)明的思想進(jìn)行變型。
[0071]實(shí)施例一:
[0072]本實(shí)施例中,所述端口連接為HTTP短連接。
[0073]本實(shí)施例中,可以首先在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)HTTP短連接,在建立所述M個(gè)HTTP短連接后,可以為所述M個(gè)HTTP短連接中的每個(gè)HTTP短連接均設(shè)置NAT穿越,以便所述M個(gè)HTTP短連接中的每個(gè)HTTP短連接被選擇后都能直接進(jìn)行數(shù)據(jù)傳輸。
[0074]本實(shí)施例中,在建立所述M個(gè)HTTP短連接后,如果要從中選擇所述第一 HTTP短連接,首先可以確定所述M個(gè)HTTP短連接中處于空閑狀態(tài)的P個(gè)HTTP短連接,再從所述P個(gè)HTTP短連接中選擇所述第一 HTTP短連接。P可以是不大于M的自然數(shù)。
[0075]本實(shí)施例中,在建立所述M個(gè)HTTP短連接后,如果要從中選擇所述第一 HTTP短連接,選擇的方式可以是從所述M個(gè)HTTP短連接中任意選擇一個(gè)處于空閑狀態(tài)的HTTP短連接作為所述第一 HTTP短連接,即從所述P個(gè)HTTP短連接中任意選擇一個(gè)HTTP短連接作為所述第一 HTTP短連接。
[0076]例如,本實(shí)施例中M = 4,所述M個(gè)HTTP短連接分別為第一個(gè)HTTP短連接、第二個(gè)HTTP短連接、第三個(gè)HTTP短連接和第四個(gè)HTTP短連接,其中所述第一個(gè)HTTP短連接、所述第三個(gè)HTTP短連接和所述第四個(gè)HTTP短連接處于空閑狀態(tài),所述第二個(gè)HTTP短連接處于工作狀態(tài)。則在選擇時(shí)可以從所述第一個(gè)HTTP短連接、所述第三個(gè)HTTP短連接和所述第四個(gè)HTTP短連接中任意選擇一個(gè)HTTP短連接作為所述第一 HTTP短連接,本實(shí)施例中選擇了所述第三個(gè)HTTP短連接作為所述第一 HTTP短連接。
[0077]本實(shí)施例中,在選擇所述第一 HTTP短連接后,可以根據(jù)所述第一 HTTP短連接及相應(yīng)的接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0078]其中,所述接收端信息可以包括在所述第一數(shù)據(jù)中。
[0079]在需要傳輸數(shù)據(jù)時(shí),可以直接從已建立的多個(gè)HTTP短連接中選擇一個(gè)處于空閑狀態(tài)的所述第一 HTTP短連接進(jìn)行傳輸,節(jié)省了臨時(shí)建立HTTP短連接的時(shí)間。同時(shí),已建立的HTTP短連接是已設(shè)置好NAT穿越的HTTP短連接,無需再實(shí)現(xiàn)NAT穿越,同樣節(jié)省了時(shí)間,顯然提高了數(shù)據(jù)傳輸效率。[0080]本實(shí)施例中,在根據(jù)所述第一 HTTP短連接及所述接收端信息將所述第一數(shù)據(jù)傳輸至所述接收端后,還可以通過所述第一 HTTP短連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一 HTTP短連接。
[0081]這樣做是為了便于后續(xù)繼續(xù)傳輸數(shù)據(jù),持續(xù)維持所述第一 HTTP短連接,后續(xù)如果還有數(shù)據(jù)需要傳輸則可以直接利用所述第一 HTTP短連接進(jìn)行傳輸,無需再選擇HTTP短連接進(jìn)行傳輸,節(jié)省了選擇時(shí)間,提高了數(shù)據(jù)傳輸效率。
[0082]實(shí)施例二:
[0083]本實(shí)施例中,所述端口連接為HTTP短連接。
[0084]本實(shí)施例中,可以首先建立M個(gè)HTTP短連接,在建立所述M個(gè)HTTP短連接后,可以為所述M個(gè)HTTP短連接中的每個(gè)HTTP短連接均設(shè)置NAT穿越,以便所述M個(gè)HTTP短連接中的每個(gè)HTTP短連接被選擇后都能直接進(jìn)行數(shù)據(jù)傳輸。
[0085]本實(shí)施例中,在建立所述M個(gè)HTTP短連接后,可以對(duì)所述M個(gè)HTTP短連接進(jìn)行監(jiān)控。如果監(jiān)控到所述M個(gè)HTTP短連接中有N個(gè)HTTP短連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉所述N個(gè)HTTP短連接。本發(fā)明實(shí)施例中,N可以是不大于M的自然數(shù)。
[0086]如果監(jiān)控到其中有的HTTP短連接在所述第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉這些未接收到所述第一數(shù)據(jù)的HTTP短連接,以盡量減輕公網(wǎng)中服務(wù)器的負(fù)擔(dān)。
[0087]本實(shí)施例中,初始時(shí)M = 6,所述M個(gè)HTTP短連接分別為第一個(gè)HTTP短連接、第二個(gè)HTTP短連接、第三個(gè)HTTP短連接、第四個(gè)HTTP短連接、第五個(gè)HTTP短連接和第六個(gè)HTTP短連接。監(jiān)控確定所述第五個(gè)HTTP短連接和所述第六個(gè)HTTP短連接在所述第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)均未接收到所述第一數(shù)據(jù),則可以關(guān)閉所述第五個(gè)HTTP短連接和所述第六個(gè)HTTP短連接。關(guān)閉后,M = 4。
[0088]本實(shí)施例中,在建立所述M個(gè)HTTP短連接后,如果要從中選擇所述第一 HTTP短連接,首先可以確定所述M個(gè)HTTP短連接中處于空閑狀態(tài)的P個(gè)HTTP短連接,再從所述P個(gè)HTTP短連接中選擇所述第一 HTTP短連接。P可以是不大于M的自然數(shù)。
[0089]本實(shí)施例中,在建立所述M個(gè)HTTP短連接后,如果要從中選擇所述第一 HTTP短連接,一種可能的方式可以是從所述M個(gè)HTTP短連接中選擇一個(gè)處于空閑狀態(tài)的、特定的HTTP短連接作為所述第一 HTTP短連接,即從所述P個(gè)HTTP短連接中選擇一個(gè)特定的HTTP短連接作為所述第一 HTTP短連接。
[0090]例如,本實(shí)施例中因已關(guān)閉了所述第五個(gè)HTTP短連接和所述第六個(gè)HTTP短連接,關(guān)閉后的M = 4,則所述M個(gè)HTTP短連接分別為第一個(gè)HTTP短連接、第二個(gè)HTTP短連接、第三個(gè)HTTP短連接和第四個(gè)HTTP短連接,其中所述第一個(gè)HTTP短連接、所述第三個(gè)HTTP短連接和所述第四個(gè)HTTP短連接處于空閑狀態(tài),所述第二個(gè)HTTP短連接處于工作狀態(tài)。則在選擇時(shí)可以從所述第一個(gè)HTTP短連接、所述第三個(gè)HTTP短連接和所述第四個(gè)HTTP短連接中選擇一個(gè)特定的HTTP短連接作為所述第一 HTTP短連接,本實(shí)施例中所述第四HTTP短連接為特定的HTTP短連接,則本實(shí)施例中選擇了所述第四個(gè)HTTP短連接作為所述第一HTTP短連接。
[0091 ] 本實(shí)施例中,在選擇所述第一 HTTP短連接后,可以根據(jù)所述第一 HTTP短連接及相應(yīng)的接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0092]其中,所述接收端信息可以包括在所述第一數(shù)據(jù)中。
[0093]在需要傳輸數(shù)據(jù)時(shí),可以直接從已建立的多個(gè)HTTP短連接中選擇一個(gè)處于空閑狀態(tài)的所述第一 HTTP短連接進(jìn)行傳輸,節(jié)省了臨時(shí)建立HTTP短連接的時(shí)間。同時(shí),已建立的HTTP短連接是已設(shè)置好NAT穿越的HTTP短連接,無需再實(shí)現(xiàn)NAT穿越,同樣節(jié)省了時(shí)間,顯然提高了數(shù)據(jù)傳輸效率。
[0094]本實(shí)施例中,在根據(jù)所述第一 HTTP短連接及所述接收端信息將所述第一數(shù)據(jù)傳輸至所述接收端后,還可以通過所述第一 HTTP短連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一 HTTP短連接。
[0095]這樣做是為了便于后續(xù)繼續(xù)傳輸數(shù)據(jù),持續(xù)維持所述第一 HTTP短連接,后續(xù)如果還有數(shù)據(jù)需要傳輸則可以直接利用所述第一 HTTP短連接進(jìn)行傳輸,無需再選擇HTTP短連接進(jìn)行傳輸,節(jié)省了選擇時(shí)間,提高了數(shù)據(jù)傳輸效率。
[0096]本實(shí)施例中,可以實(shí)時(shí)、定時(shí)或受觸發(fā)時(shí)對(duì)所述第一 HTTP短連接進(jìn)行監(jiān)控。如果檢測(cè)到在通過所述第一 HTTP短連接向所述接收端發(fā)送所述心跳信息,以維持與所述接收端之間的所述第一 HTTP短連接之后,所述第一 HTTP短連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù),則可以關(guān)閉所述第一 HTTP短連接。
[0097]如果所述第一 HTTP短連接在所述第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)都未接收到所述第二數(shù)據(jù),表明可能沒有需要傳輸?shù)臄?shù)據(jù),這時(shí)可以關(guān)閉所述第一 HTTP短連接,以節(jié)約出公網(wǎng)中服務(wù)器的接口,便于服務(wù)器向其他客戶端提供服務(wù),盡量避免資源浪費(fèi),做到資源的合理利用。
[0098]實(shí)施例三:
[0099]本實(shí)施例中,需要傳輸?shù)臄?shù)據(jù)為UDP數(shù)據(jù)。本實(shí)施例中,所述端口連接為RUDP連接。
[0100]本實(shí)施例中,可以首先在數(shù)據(jù)傳輸?shù)膬啥酥g建立總RUDP連接。然后建立M個(gè)RUDP連接,建立的所述M個(gè)RUDP連接組成一個(gè)總RUDP連接,即所述M個(gè)RUDP連接均為所述總RUDP連接的組成部分,在所述總RUDP連接的報(bào)文頭中可以設(shè)置有分別對(duì)應(yīng)于所述M個(gè)UDP連接中每個(gè)RUDP連接的標(biāo)識(shí)信息。在建立所述M個(gè)RUDP連接后,可以為所述M個(gè)RUDP連接中的每個(gè)RUDP連接均設(shè)置NAT穿越,即可以為所述總RUDP連接設(shè)置NAT穿越,以便所述M個(gè)RUDP連接中的每個(gè)RUDP連接被選擇后都能直接進(jìn)行數(shù)據(jù)傳輸。
[0101]較佳的,本實(shí)施例中,所述總RUDP連接中包括的RUDP連接可能是處于空閑狀態(tài)的RUDP連接,也可能是處于工作狀態(tài)的RUDP連接。在從所述總RUDP連接中選擇所述第一RUDP連接時(shí),需要選擇的是處于空閑狀態(tài)的RUDP連接。本發(fā)明實(shí)施例中,所述標(biāo)識(shí)信息不僅可以用于唯一標(biāo)識(shí)一個(gè)RUDP連接,還可以表明相應(yīng)RUDP連接所處的狀態(tài)。這樣,在選擇時(shí)可以直接根據(jù)所述標(biāo)識(shí)信息進(jìn)行選擇。
[0102]本實(shí)施例中,M = 4,所述總RUDP連接中共包括有四個(gè)RUDP連接,則所述總RUDP連接的報(bào)文頭中可以設(shè)置有四個(gè)標(biāo)識(shí)信息,其中第一標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)RUDP連接中的第一個(gè)RUDP連接,第二標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)RUDP連接中的第二個(gè)RUDP連接,第三標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)RUDP連接中的第三個(gè)RUDP連接,第四標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)RUDP連接中的第四個(gè)RUDP連接。
[0103]所述第一標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第一個(gè)RUDP連接,還可以表明所述第一個(gè)RUDP連接所處的狀態(tài),例如所述第一個(gè)RUDP連接處于空閑狀態(tài);所述第二標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第二個(gè)RUDP連接,還可以表明所述第二個(gè)RUDP連接所處的狀態(tài),例如所述第二個(gè)RUDP連接處于工作狀態(tài);所述第三標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第三個(gè)RUDP連接,還可以表明所述第三個(gè)RUDP連接所處的狀態(tài),例如所述第三個(gè)RUDP連接處于空閑狀態(tài);所述第四標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第四個(gè)RUDP連接,還可以表明所述第四個(gè)RUDP連接所處的狀態(tài),例如所述第四個(gè)RUDP連接處于空閑狀態(tài)。
[0104]本實(shí)施例中,在建立所述M個(gè)RUDP連接后,可以對(duì)所述M個(gè)RUDP連接進(jìn)行監(jiān)控。如果監(jiān)控到所述M個(gè)RUDP連接中有N個(gè)RUDP連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉所述N個(gè)RUDP連接。本發(fā)明實(shí)施例中,N可以是不大于M的自然數(shù)。
[0105]如果監(jiān)控到其中有的RUDP連接在所述第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉這些未接收到所述第一數(shù)據(jù)的RUDP連接,以盡量減輕公網(wǎng)中服務(wù)器的負(fù)擔(dān)。
[0106]本實(shí)施例中,沒有關(guān)閉任一個(gè)RUDP連接。
[0107]本實(shí)施例中,在建立所述M個(gè)RUDP連接后,如果要從中選擇所述第一 RUDP連接,首先可以根據(jù)所述標(biāo)識(shí)信息確定所述M個(gè)RUDP連接中處于空閑狀態(tài)的P個(gè)RUDP連接,再從所述P個(gè)RUDP連接中選擇所述第一 RUDP連接。P可以是不大于M的自然數(shù)。本實(shí)施例中確定所述第一個(gè)RUDP連接、所述第三個(gè)RUDP連接和所述第四個(gè)RUDP連接均處于空閑狀態(tài),而所述第二個(gè)UDP連接處于工作狀態(tài),即P = 3。
[0108]本實(shí)施例中,在建立所述M個(gè)RUDP連接后,如果要從中選擇所述第一 RUDP連接,一種可能的方式可以是從所述M個(gè)RUDP連接中選擇一個(gè)處于空閑狀態(tài)的、特定的RUDP連接作為所述第一 RUDP連接,即從所述P個(gè)RUDP連接中選擇一個(gè)特定的RUDP連接作為所述第一 RUDP連接。
[0109]例如,本實(shí)施例中所述M個(gè)RUDP連接分別為所述第一個(gè)RUDP連接、所述第二個(gè)RUDP連接、所述第三個(gè)RUDP連接和所述第四個(gè)RUDP連接,其中所述第一個(gè)RUDP連接、所述第三個(gè)RUDP連接和所述第四個(gè)RUDP連接處于空閑狀態(tài),所述第二個(gè)RUDP連接處于工作狀態(tài)。則在選擇時(shí)可以從所述第一個(gè)RUDP連接、所述第三個(gè)RUDP連接和所述第四個(gè)RUDP連接中選擇一個(gè)特定的RUDP連接作為所述第一 RUDP連接,本實(shí)施例中所述第四RUDP連接為特定的RUDP連接,則本實(shí)施例中選擇了所述第四個(gè)RUDP連接作為所述第一 RUDP連接。
[0110]本實(shí)施例中,在選擇所述第一 RUDP連接后,可以根據(jù)所述第一 RUDP連接及相應(yīng)的接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0111]其中,所述接收端信息可以包括在所述第一數(shù)據(jù)中。
[0112]在需要傳輸數(shù)據(jù)時(shí),可以根據(jù)所述標(biāo)識(shí)信息直接從已建立的所述總RUDP連接中選擇一個(gè)處于空閑狀態(tài)的所述第一 RUDP連接進(jìn)行傳輸,節(jié)省了臨時(shí)建立RUDP連接的時(shí)間。同時(shí),已建立的RUDP連接是已設(shè)置好NAT穿越的RUDP連接,無需再實(shí)現(xiàn)NAT穿越,同樣節(jié)省了時(shí)間,顯然提高了數(shù)據(jù)傳輸效率。
[0113]實(shí)施例四:
[0114]本實(shí)施例中,需要傳輸?shù)臄?shù)據(jù)為UDP數(shù)據(jù)。本實(shí)施例中,所述端口連接為UDP連接。
[0115]本實(shí)施例中,可以首先在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)UDP連接,建立的所述M個(gè)UDP連接組成一個(gè)總UDP連接,即所述M個(gè)UDP連接均為所述總UDP連接的組成部分,在所述總UDP連接的報(bào)文頭中可以設(shè)置有分別對(duì)應(yīng)于所述M個(gè)UDP連接中每個(gè)UDP連接的標(biāo)識(shí)信息。在建立所述M個(gè)UDP連接后,可以為所述M個(gè)UDP連接中的每個(gè)UDP連接均設(shè)置NAT穿越,即可以為所述總UDP連接設(shè)置NAT穿越,以便所述M個(gè)UDP連接中的每個(gè)UDP連接被選擇后都能直接進(jìn)行數(shù)據(jù)傳輸。
[0116]較佳的,本實(shí)施例中,所述總UDP連接中包括的UDP連接可能是處于空閑狀態(tài)的UDP連接,也可能是處于工作狀態(tài)的UDP連接。在從所述總UDP連接中選擇所述第一 UDP連接時(shí),需要選擇的是處于空閑狀態(tài)的UDP連接。本發(fā)明實(shí)施例中,所述標(biāo)識(shí)信息不僅可以用于唯一標(biāo)識(shí)一個(gè)UDP連接,還可以表明相應(yīng)UDP連接所處的狀態(tài)。這樣,在選擇時(shí)可以直接根據(jù)所述標(biāo)識(shí)信息進(jìn)行選擇。
[0117]本實(shí)施例中,M = 4,所述總UDP連接中共包括有四個(gè)UDP連接,則所述總UDP連接的報(bào)文頭中可以設(shè)置有四個(gè)標(biāo)識(shí)信息,其中第一標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP連接中的第一個(gè)UDP連接,第二標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP連接中的第二個(gè)UDP連接,第三標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP連接中的第三個(gè)UDP連接,第四標(biāo)識(shí)信息可以用于標(biāo)識(shí)該四個(gè)UDP連接中的第四個(gè)UDP連接。
[0118]所述第一標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第一個(gè)UDP連接,還可以表明所述第一個(gè)UDP連接所處的狀態(tài),例如所述第一個(gè)UDP連接處于空閑狀態(tài);所述第二標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第二個(gè)UDP連接,還可以表明所述第二個(gè)UDP連接所處的狀態(tài),例如所述第二個(gè)UDP連接處于工作狀態(tài);所述第三標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第三個(gè)UDP連接,還可以表明所述第三個(gè)UDP連接所處的狀態(tài),例如所述第三個(gè)UDP連接處于空閑狀態(tài);所述第四標(biāo)識(shí)信息不僅可以唯一標(biāo)識(shí)所述第四個(gè)UDP連接,還可以表明所述第四個(gè)UDP連接所處的狀態(tài),例如所述第四個(gè)UDP連接處于空閑狀態(tài)。
[0119]本實(shí)施例中,在建立所述M個(gè)UDP連接后,可以對(duì)所述M個(gè)UDP連接進(jìn)行監(jiān)控。如果監(jiān)控到所述M個(gè)UDP連接中有N個(gè)UDP連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉所述N個(gè)UDP連接。本發(fā)明實(shí)施例中,N可以是不大于M的自然數(shù)。
[0120]如果監(jiān)控到其中有的UDP連接在所述第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù),則可以關(guān)閉這些未接收到所述第一數(shù)據(jù)的UDP連接,以盡量減輕公網(wǎng)中服務(wù)器的負(fù)擔(dān)。
[0121]本實(shí)施例中,沒有關(guān)閉任一個(gè)UDP連接。
[0122]本實(shí)施例中,在建立所述M個(gè)UDP連接后,如果要從中選擇所述第一 UDP連接,首先可以根據(jù)所述標(biāo)識(shí)信息確定所述M個(gè)UDP連接中處于空閑狀態(tài)的P個(gè)UDP連接,再從所述P個(gè)UDP連接中選擇所述第一 UDP連接。P可以是不大于M的自然數(shù)。本實(shí)施例中確定所述第一個(gè)Μ)Ρ連接、所述第三個(gè)UDP連接和所述第四個(gè)UDP連接均處于空閑狀態(tài),而所述第二個(gè)UDP連接處于工作狀態(tài),即P = 3。
[0123]本實(shí)施例中,在建立所述M個(gè)UDP連接后,如果要從中選擇所述第一 UDP連接,一種可能的方式可以是從所述M個(gè)UDP連接中任意選擇一個(gè)處于空閑狀態(tài)的UDP連接作為所述第一 UDP連接,即從所述P個(gè)UDP連接中任意選擇一個(gè)UDP連接作為所述第一 UDP連接。
[0124]例如,本實(shí)施例中所述M個(gè)UDP連接分別為所述第一個(gè)UDP連接、所述第二個(gè)UDP連接、所述第三個(gè)m)P連接和所述第四個(gè)UDP連接,其中所述第一個(gè)UDP連接、所述第三個(gè)UDP連接和所述第四個(gè)UDP連接處于空閑狀態(tài),所述第二個(gè)m)P連接處于工作狀態(tài)。則在選擇時(shí)可以從所述第一個(gè)UDP連接、所述第三個(gè)UDP連接和所述第四個(gè)UDP連接中任意選擇一個(gè)UDP連接作為所述第一 UDP連接,本實(shí)施例中選擇了所述第一個(gè)UDP連接作為所述第一 UDP連接。
[0125]本實(shí)施例中,在選擇所述第一 UDP連接后,可以根據(jù)所述第一 UDP連接及相應(yīng)的接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0126]其中,所述接收端信息可以包括在所述第一數(shù)據(jù)中。
[0127]在需要傳輸數(shù)據(jù)時(shí),可以根據(jù)所述標(biāo)識(shí)信息直接從已建立的所述總UDP連接中選擇一個(gè)處于空閑狀態(tài)的所述第一 m)P連接進(jìn)行傳輸,節(jié)省了臨時(shí)建立UDP連接的時(shí)間。同時(shí),已建立的m)P連接是已設(shè)置好NAT穿越的UDP連接,無需再實(shí)現(xiàn)NAT穿越,同樣節(jié)省了時(shí)間,顯然提高了數(shù)據(jù)傳輸效率。
[0128]本實(shí)施例中,在根據(jù)所述第一 UDP連接及所述接收端信息將所述第一數(shù)據(jù)傳輸至所述接收端后,還可以通過所述第一 UDP連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一 UDP連接。
[0129]這樣做是為了便于后續(xù)繼續(xù)傳輸數(shù)據(jù),持續(xù)維持所述第一 UDP連接,后續(xù)如果還有數(shù)據(jù)需要傳輸則可以直接利用所述第一 UDP連接進(jìn)行傳輸,無需再選擇UDP連接進(jìn)行傳輸,節(jié)省了選擇時(shí)間,提高了數(shù)據(jù)傳輸效率。
[0130]本實(shí)施例中,可以實(shí)時(shí)、定時(shí)或受觸發(fā)時(shí)對(duì)所述第一 UDP連接進(jìn)行監(jiān)控。如果檢測(cè)到在通過所述第一 UDP連接向所述接收端發(fā)送所述心跳信息,以維持與所述接收端之間的所述第一 UDP連接之后,所述第一 UDP連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù),則可以關(guān)閉所述第一 UDP連接。
[0131]如果所述第一 UDP連接在所述第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)都未接收到所述第二數(shù)據(jù),表明可能沒有需要傳輸?shù)臄?shù)據(jù),這時(shí)可以關(guān)閉所述第一 UDP連接,以節(jié)約出公網(wǎng)中服務(wù)器的接口,便于服務(wù)器向其他客戶端提供服務(wù),盡量避免資源浪費(fèi),做到資源的合理利用。
[0132]參見圖2,本發(fā)明還提供一種電子設(shè)備,所述電子設(shè)備可以包括選擇模塊201和傳輸模塊202。
[0133]較佳的,本發(fā)明實(shí)施例中,所述電子設(shè)備還可以包括關(guān)閉模塊203。
[0134]選擇模塊201可以用于在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,對(duì)所述M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù)。
[0135]選擇模塊201具體可以用于從已建立的所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接;或從已建立的所述M個(gè)端口連接中選擇一個(gè)處于空閑狀態(tài)的特定的端口連接作為所述第一端口連接。
[0136]選擇模塊201具體可以用于根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
[0137]如果所述數(shù)據(jù)為UDP數(shù)據(jù),選擇模塊201具體可以用于建立至少一個(gè)總端口連接,在所述至少一個(gè)總端口連接中包括有所述M個(gè)端口連接,該M個(gè)端口連接通過在所述總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分;及為所述總端口連接設(shè)置NAT穿越。
[0138]選擇模塊201具體可以用于從所述M個(gè)端口連接中選擇空閑的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
[0139]傳輸模塊202可以用于通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0140]傳輸模塊202還可以用于通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。
[0141 ] 關(guān)閉模塊203可以用于當(dāng)所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù)時(shí),關(guān)閉所述N個(gè)端口連接;其中,N為不大于M的自然數(shù)。
[0142]關(guān)閉模塊203可以用于當(dāng)所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù)時(shí),關(guān)閉所述第一端口連接。
[0143]本發(fā)明實(shí)施例中,所述端口連接可以是HTTP短連接,或者也可以是UDP連接,或者也可以是RUDP連接。
[0144]本發(fā)明實(shí)施例中的數(shù)據(jù)傳輸方法可以包括:建立M個(gè)端口連接,對(duì)所述M個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接⑷為正整數(shù);通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
[0145]先建立M個(gè)端口連接,且對(duì)所述M個(gè)端口連接中的每個(gè)端口連接均設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),可以從已建立的M個(gè)端口連接中選擇一個(gè)所述第一端口連接進(jìn)行傳輸,所述第一端口連接可以是處于空閑狀態(tài)的端口連接。這樣,預(yù)先建立有多個(gè)端口連接,在需要傳輸數(shù)據(jù)時(shí)直接從中選擇一個(gè)處于空閑狀態(tài)的端口連接進(jìn)行傳輸即可,無需在需要傳輸數(shù)據(jù)時(shí)再建立端口連接,節(jié)省了時(shí)間,提高了數(shù)據(jù)傳輸效率。且無需服務(wù)器中轉(zhuǎn),不會(huì)給服務(wù)器帶來較大負(fù)擔(dān),也因?yàn)椴恍枰ㄟ^服務(wù)器中轉(zhuǎn),進(jìn)一步提高了數(shù)據(jù)傳輸效率。
[0146]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0147]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0148]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0149]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0150]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)傳輸方法,其特征在于,包括以下步驟: 在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,為該M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù); 通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
2.如權(quán)利要求1所述的方法,其特征在于,在為該M個(gè)端口連接設(shè)置NAT穿越之后還包括步驟:當(dāng)所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù)時(shí),關(guān)閉所述N個(gè)端口連接;其中,N為不大于M的自然數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接的步驟包括:從已建立的所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接;或從已建立的所述M個(gè)端口連接中選擇一個(gè)處于空閑狀態(tài)的特定的端口連接作為所述第一端口連接。
4.如權(quán)利要求1所述的方法,其特征在于,如果所述數(shù)據(jù)為UDP數(shù)據(jù),建立M個(gè)端口連接的步驟包括: 建立至少一個(gè)總連接,在所述至少一個(gè)總端口連接中包括有所述M個(gè)端口連接,該M個(gè)端口連接通過在所述總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分,所述為該M個(gè)端口連接設(shè)置NAT穿越的步驟包括:為所述總端口連接設(shè)置NAT穿越。
5.如權(quán)利要求4所述的方法,其特征在于,從已建立的所述M個(gè)端口連接中選擇一個(gè)第一端口連接的步驟包括:從所述M個(gè)端口連接中選擇空閑的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
6.如權(quán)利要求5所述的方法,其特征在于,所述端口連接為UDP連接或RUDP連接。
7.如權(quán)利要求1-6任一項(xiàng)所述的方法,其特征在于,根據(jù)所述第一端口連接及接收端信息將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端之后還包括步驟:通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。
8.如權(quán)利要求7所述的方法,其特征在于,在通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接之后還包括步驟:當(dāng)所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù)時(shí),關(guān)閉所述第一端口連接。
9.如權(quán)利要求1所述的方法,其特征在于,所述端口連接為HTTP短連接。
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括: 選擇模塊,用于在數(shù)據(jù)傳輸?shù)膬啥酥g建立M個(gè)端口連接,為該M個(gè)端口連接設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿越,當(dāng)需要傳輸數(shù)據(jù)時(shí),從已建立的M個(gè)端口連接中選擇一個(gè)第一端口連接;M為正整數(shù); 傳輸模塊,用于通過所述第一端口連接將待傳輸?shù)牡谝粩?shù)據(jù)傳輸至所述接收端。
11.如權(quán)利要求10所述的電子設(shè)備,其特征在于,所述電子設(shè)備還包括關(guān)閉模塊,用于:當(dāng)所述M個(gè)端口連接中有N個(gè)端口連接在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到所述第一數(shù)據(jù)時(shí),關(guān)閉所述N個(gè)端口連接;其中,N為不大于M的自然數(shù)。
12.如權(quán)利要求10所述的電子設(shè)備,其特征在于,所述選擇模塊具體用于:從已建立的所述M個(gè)端口連接中任意選擇一個(gè)處于空閑狀態(tài)的端口連接作為所述第一端口連接;或從已建立的所述M個(gè)端口連接中選擇一個(gè) 處于空閑狀態(tài)的特定的端口連接作為所述第一端口連接。
13.如權(quán)利要求10所述的電子設(shè)備,其特征在于,如果所述數(shù)據(jù)為用戶數(shù)據(jù)包協(xié)議UDP數(shù)據(jù),所述選擇模塊具體用于:建立至少一個(gè)總端口連接,在所述至少一個(gè)總端口連接中包括有所述M個(gè)端口連接,該M個(gè)端口連接通過在所述總端口連接的報(bào)文頭中設(shè)置對(duì)應(yīng)于每個(gè)端口連接的標(biāo)識(shí)信息來區(qū)分;及為所述總端口連接設(shè)置NAT穿越。
14.如權(quán)利要求13所述的電子設(shè)備,其特征在于,所述選擇模塊具體用于:從所述M個(gè)端口連接中選擇空閑的端口連接對(duì)應(yīng)的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息從已建立的所述總端口連接中選擇所述第一端口連接。
15.如權(quán)利要求14所述的電子設(shè)備,其特征在于,所述端口連接為UDP連接或RUDP連接。
16.如權(quán)利要求10-15任一項(xiàng)所述的電子設(shè)備,其特征在于,所述傳輸模塊還用于:通過所述第一端口連接向所述接收端發(fā)送心跳信息,以維持與所述接收端之間的所述第一端口連接。
17.如權(quán)利要求16所述的電子設(shè)備,其特征在于,所述電子設(shè)備還包括關(guān)閉模塊,用于:當(dāng)所述第一端口連接在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未接收到待傳輸?shù)牡诙?shù)據(jù)時(shí),關(guān)閉所述第一端口連接。
18.如權(quán)利要求10所述的電子設(shè)備,其特征在于,所述端口連接為超文本傳輸協(xié)議HTTP短連 接。
【文檔編號(hào)】H04L29/12GK103888500SQ201210564172
【公開日】2014年6月25日 申請(qǐng)日期:2012年12月21日 優(yōu)先權(quán)日:2012年12月21日
【發(fā)明者】王燦, 戴輝, 李小丁 申請(qǐng)人:聯(lián)想(北京)有限公司