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