即時(shí)通信的文件傳輸方法以及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及即時(shí)通信軟件技術(shù),尤其涉及一種即時(shí)通信的文件傳輸方法以及系統(tǒng)。
【背景技術(shù)】
[0002]使用即時(shí)通信軟件進(jìn)行通信是目前用戶通過互聯(lián)網(wǎng)進(jìn)行通信的主要手段之一。使用即時(shí)通信軟件可以允許兩人或多人通過網(wǎng)絡(luò)即時(shí)地傳遞文字訊息、語音與視頻交流。
[0003]在現(xiàn)有技術(shù)中,用戶還可使用即時(shí)通信軟件傳輸文件,所述文件可以是語音數(shù)據(jù)、視頻數(shù)據(jù)、圖片數(shù)據(jù)、文字?jǐn)?shù)據(jù)等。目前即時(shí)通信軟件采用點(diǎn)對點(diǎn)方式或服務(wù)器中轉(zhuǎn)方式來傳輸文件。服務(wù)器中轉(zhuǎn)方式的優(yōu)點(diǎn)在于可以由服務(wù)器控制文件傳輸?shù)穆窂揭约皩?shí)現(xiàn)文件的離線發(fā)送;其缺點(diǎn)是文件傳輸速度受到運(yùn)行即時(shí)通信軟件的設(shè)備接入的互聯(lián)網(wǎng)資源的上行帶寬的限制,通常會(huì)考慮限制所需傳輸?shù)奈募拇笮?,此外由于文件傳輸依靠服?wù)器進(jìn)行轉(zhuǎn)發(fā),因此在即時(shí)通信軟件的全局用戶數(shù)量增加的情況下,服務(wù)器負(fù)荷較高,難以維護(hù)。點(diǎn)對點(diǎn)方式傳輸文件的優(yōu)點(diǎn)在于傳輸速度較快,尤其是在局域網(wǎng)內(nèi)進(jìn)行傳輸時(shí)傳輸速度不受互聯(lián)網(wǎng)資源的上行帶寬限制;其缺點(diǎn)是文件傳輸?shù)姆€(wěn)定性容易受到路由器和防火墻的影響,而且不能實(shí)現(xiàn)離線傳輸。
[0004]通常,如果文件傳輸?shù)陌l(fā)送方和接收方處在同一網(wǎng)段內(nèi),使用點(diǎn)對點(diǎn)方式進(jìn)行文件傳輸?shù)男矢?,如果文件傳輸?shù)陌l(fā)送方和接收方不在同一網(wǎng)段內(nèi),使用服務(wù)器中轉(zhuǎn)方式進(jìn)行文件傳輸?shù)男矢?。但目前現(xiàn)有的即時(shí)通信軟件并不能根據(jù)網(wǎng)絡(luò)狀況來判斷文件傳輸使用哪種方式效率更高。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提供了一種即時(shí)通信的文件傳輸方法,該方法包括:
[0006]消息發(fā)送端啟動(dòng)TCP服務(wù),并向消息接收端發(fā)送文件傳輸消息;
[0007]所述消息發(fā)送端判斷是否接收到所述消息接收端根據(jù)所述文件傳輸消息返回的TCP連接請求;
[0008]若是,則所述消息發(fā)送端使用點(diǎn)對點(diǎn)方式向所述消息接收端發(fā)送待傳輸文件;
[0009]若否,則所述消息發(fā)送端通過中轉(zhuǎn)服務(wù)器向所述消息接收端發(fā)送所述待傳輸文件。
[0010]根據(jù)本發(fā)明的一個(gè)方面,該方法中所述文件傳輸消息包括:所述TCP服務(wù)的連接信息以及所述待傳輸文件的屬性信息。
[0011]根據(jù)本發(fā)明的另一個(gè)方面,該方法中所述消息發(fā)送端使用點(diǎn)對點(diǎn)方式向所述消息接收端發(fā)送待傳輸文件包括:所述消息發(fā)送端與所述消息接收端之間建立TCP連接;所述消息發(fā)送端通過所述TCP連接向所述消息接收端發(fā)送所述待傳輸文件。
[0012]根據(jù)本發(fā)明的另一個(gè)方面,該方法中所述消息發(fā)送端通過中轉(zhuǎn)服務(wù)器向所述消息接收端發(fā)送所述待傳輸文件包括:所述消息發(fā)送端向所述中轉(zhuǎn)服務(wù)器發(fā)送所述待傳輸文件;所述中轉(zhuǎn)服務(wù)器接收并緩存所述待傳輸文件;所述中轉(zhuǎn)服務(wù)器根據(jù)所述消息接收端的下載請求向所述消息接收端下發(fā)所述待傳輸文件。
[0013]相應(yīng)地,本發(fā)明還提供了一種即時(shí)通信的文件傳輸系統(tǒng),該系統(tǒng)包括消息發(fā)送端、消息接收端和中轉(zhuǎn)服務(wù)器,其中:
[0014]所述消息發(fā)送端包括連接模塊、判斷模塊、直接傳輸模塊和中轉(zhuǎn)傳輸模塊;
[0015]所述連接模塊,用于啟動(dòng)TCP服務(wù),并向所述消息接收端發(fā)送文件傳輸消息;
[0016]所述判斷模塊,用于判斷是否接收到所述消息接收端根據(jù)所述文件傳輸消息反饋的TCP連接請求,若是則觸發(fā)所述直接傳輸模塊工作,若否則觸發(fā)所述中轉(zhuǎn)傳輸模塊工作;
[0017]所述直接傳輸模塊,用于使用點(diǎn)對點(diǎn)方式向所述消息接收端發(fā)送待傳輸文件;
[0018]所述中轉(zhuǎn)傳輸模塊,用于通過所述中轉(zhuǎn)服務(wù)器向所述消息接收端發(fā)送所述待傳輸文件;
[0019]所述消息接收端,用于生成所述TCP連接請求,并接收所述待傳輸文件;
[0020]所述中轉(zhuǎn)服務(wù)器,用于緩存所述待傳輸文件。根據(jù)本發(fā)明的一個(gè)方面,該智能終端中所述預(yù)設(shè)模塊包括:編輯單元,用于在所述智能終端上呈現(xiàn)編輯界面;設(shè)置單元,用于根據(jù)針對所述編輯界面的編輯操作,分別設(shè)置所述第一解鎖界面中和所述多個(gè)第二解鎖界面中所包括一組解鎖圖形元素的顯示屬性。
[0021]根據(jù)本發(fā)明的另一個(gè)方面,該系統(tǒng)中所述文件傳輸消息包括:所述TCP服務(wù)的連接信息以及所述待傳輸文件的屬性信息。
[0022]根據(jù)本發(fā)明的另一個(gè)方面,該系統(tǒng)中所述直接傳輸模塊包括:建立連接單元,用于與所述消息接收端建立TCP連接;發(fā)送單元,用于通過所述TCP連接向所述消息接收端發(fā)送所述待傳輸文件。
[0023]根據(jù)本發(fā)明的另一個(gè)方面,該系統(tǒng)中所述中轉(zhuǎn)服務(wù)器包括:緩存模塊,用于接收并緩存所述待傳輸文件;下發(fā)模塊,用于根據(jù)所述消息接收端的下載請求向所述消息接收端下發(fā)所述待傳輸文件。
[0024]本發(fā)明所提供的即時(shí)通信的文件傳輸方法以及系統(tǒng)可以通過判斷網(wǎng)絡(luò)狀況來選擇文件傳輸?shù)木唧w方式,因此提升了即時(shí)通信中文件傳輸?shù)膫鬏斝室约氨WC文件傳輸?shù)姆€(wěn)定性。
【附圖說明】
[0025]通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0026]圖1是根據(jù)本發(fā)明的即時(shí)通信的文件傳輸方法的一種【具體實(shí)施方式】的流程圖;
[0027]圖2是圖1中步驟S300的一個(gè)優(yōu)選實(shí)施例的流程圖;
[0028]圖3是圖1中步驟S400的一個(gè)優(yōu)選實(shí)施例的流程圖;
[0029]圖4是根據(jù)本發(fā)明的即時(shí)通信的文件傳輸系統(tǒng)的一種【具體實(shí)施方式】的結(jié)構(gòu)示意圖;
[0030]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0031]為了更好地理解和闡釋本發(fā)明,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0032]本發(fā)明提供了一種即時(shí)通信的文件傳輸方法,請參考圖1,圖1是根據(jù)本發(fā)明的即時(shí)通信的文件傳輸方法的一種【具體實(shí)施方式】的流程圖,該方法包括:
[0033]步驟S100,消息發(fā)送端啟動(dòng)TCP服務(wù),并向消息接收端發(fā)送文件傳輸消息;
[0034]步驟S200,所述消息發(fā)送端判斷是否接收到所述消息接收端根據(jù)所述文件傳輸消息返回的TCP連接請求,若是執(zhí)行步驟S300,若否執(zhí)行步驟S400 ;
[0035]步驟S300,所述消息發(fā)送端使用點(diǎn)對點(diǎn)方式向所述消息接收端發(fā)送待傳輸文件;
[0036]步驟S400,所述消息發(fā)送端通過中轉(zhuǎn)服務(wù)器向所述消息接收端發(fā)送所述待傳輸文件。
[0037]具體地,所述消息發(fā)送端和所述消息接收端可以實(shí)施為運(yùn)行在合適的物理設(shè)備上的客戶端程序,所述物理設(shè)備例如是安裝了 Windows、Mac OS或Linux操作系統(tǒng)的個(gè)人電腦和筆記本電腦,或例如是安裝了 Syber OS、1S、Android、Symbian、Windows Mobile、Maemo、WebOS、Palm OS或Blackberry OS等終端操作系統(tǒng)的智能手機(jī)和平板電腦。
[0038]在步驟SlOO中,所述消息發(fā)送端啟動(dòng)TCP (Transmiss1n Control Protocol,傳輸控制協(xié)議)服務(wù),用于準(zhǔn)備與所述消息接收端進(jìn)行協(xié)商通信,同時(shí)向所述消息接收端發(fā)送文件傳輸消息,該文件傳輸消息包括所述TCP服務(wù)的連接信息以及所述待傳輸文件的屬性信息。所述TCP服務(wù)器的連接信息用于與所述消息接收端協(xié)商建立TCP連接,所述屬性信息包括但不限于所述待傳輸文件的名稱、類型和大小。
[0039]在步驟S200中,所述消息發(fā)送端等待所述消息接收端的響應(yīng),并判斷是否接收到所述消息接收端根據(jù)所述文件傳輸消息返回的TCP連接請求,本領(lǐng)域技術(shù)人員可以理解,如果所述消息發(fā)送端和所述消息接收端處于同一網(wǎng)段內(nèi),則兩者之間滿足可以采用TCP直連的條件,相應(yīng)地所述消息接收端會(huì)根據(jù)所述文件傳輸消息向所述消息發(fā)送端返回TCP連接請求;如果所述消息發(fā)送端和所述消息接收端不處于同一網(wǎng)段內(nèi)或受到其他網(wǎng)絡(luò)因素的干擾,所述消息發(fā)送端無法接收到所述消息接收端返回的TCP連接請求,因此兩者之間無法建立TCP直連。需要說明的是,處于所述同一網(wǎng)段指的是所述消息發(fā)送端和所述消息接收端的網(wǎng)絡(luò)標(biāo)識(shí)相同,所述網(wǎng)絡(luò)標(biāo)識(shí)可以使用IP地址與子網(wǎng)掩碼轉(zhuǎn)換為二進(jìn)制計(jì)數(shù)后相與計(jì)算而獲得。典型地,如果所述消息發(fā)送端和所述消息接收端處于同一局域網(wǎng)內(nèi),則兩者具有相同的網(wǎng)關(guān)IP地址,因此兩者的網(wǎng)絡(luò)標(biāo)識(shí)相同。所述消息發(fā)送端等待所述消息接收端響應(yīng)所述TCP連接請求的最大等待時(shí)間可以是本發(fā)明的實(shí)施者自定義的,該最大等待時(shí)間例如是所述消息發(fā)送端發(fā)送所述文件傳輸消息之后的3秒,如果超出該最大等待時(shí)間且所述消息發(fā)送端仍未收到所述TCP連接請求,所述消息發(fā)送端可以嘗試重發(fā)所述文件傳輸消息,或判斷為未收到所述TCP連接請求。
[0040]如果在步驟S200中所述判斷的結(jié)果是所述消息發(fā)送端接收到所述TCP連接請求,則執(zhí)行步驟S300,所述消息發(fā)送端使用點(diǎn)對點(diǎn)方式向所述消息接收端發(fā)送待傳輸文件。請參考圖2,圖2是圖1中步驟S300的一個(gè)優(yōu)選實(shí)施例的流程圖,步驟S300包括:步驟S301,所述消息發(fā)送端與所述消息接收端之間建立TCP連接;步驟S302,所述消息發(fā)送端通過所述TCP連接向所述消息接收端發(fā)送所述待傳輸文件。所述消息發(fā)送端接收到所述TCP連接請求之后滿足與所述消息接收端協(xié)商建立TCP連接的條件,因此在步驟S301中建立所述TCP連接,進(jìn)而在步驟S302中采取直接通過該TCP連接發(fā)送所述待傳輸文件的方法將所述待傳輸文件發(fā)送至所述消息接收端。所述消息發(fā)送端與所述消息接收端通過P2P (Peer toPeer,點(diǎn)對點(diǎn))方式直接交換數(shù)據(jù),所述消息發(fā)送端與所述消息接收端是對等網(wǎng)絡(luò)中的節(jié)點(diǎn)。更具體地,所述消息發(fā)送端可以采用PPP(P1nt to P1nt Protocol,點(diǎn)對點(diǎn)協(xié)議)向所述消息接收端發(fā)送所述待傳輸文件。
[0041]如果在步驟S200中所述判斷的結(jié)果是所述消息發(fā)送端未接收到所述TCP連接請求,則執(zhí)行步驟S400,所述消息發(fā)送端通