一種二進(jìn)制通信結(jié)構(gòu)的制作方法
【專利摘要】本發(fā)明公開了一種二進(jìn)制通信結(jié)構(gòu),適用于通用的會(huì)議視頻軟件通信庫,它采用二進(jìn)制編碼,封裝了使用的底層調(diào)用,用于網(wǎng)絡(luò)端點(diǎn)之間的通信。它使用UDP報(bào)文承載通信消息,使用心跳機(jī)制保障網(wǎng)絡(luò)連接正常,使用ACK應(yīng)答保證消息的丟失重傳功能。通過上述方式,本發(fā)明能夠提高軟件開發(fā)效率,增強(qiáng)穩(wěn)定性和可靠性。
【專利說明】一種二進(jìn)制通信結(jié)構(gòu)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通用的會(huì)議音視頻軟件通信庫,適用于不同系統(tǒng)平臺(tái)的會(huì)議軟件,用于網(wǎng)絡(luò)端點(diǎn)間的相互通信。
【背景技術(shù)】
[0002]在基于TCP/IP的網(wǎng)絡(luò)環(huán)境下,二進(jìn)制通信結(jié)構(gòu)可用于終端和服務(wù)器之間的通信。由于辦公協(xié)同平臺(tái)下的終端和服務(wù)器之間,以及服務(wù)器之間的通信不匹配,導(dǎo)致無法通用,需要為不同系統(tǒng)平臺(tái)的軟件開發(fā)不同的通信庫。所以為適應(yīng)不同的系統(tǒng)平臺(tái),需要建立一個(gè)跨平臺(tái)通信庫采用了通用的平臺(tái)庫技術(shù),使得可以在不同系統(tǒng)中的終端和服務(wù)器軟件使用。
【發(fā)明內(nèi)容】
[0003]本發(fā)明主要解決的技術(shù)問題是提供一種二進(jìn)制通信結(jié)構(gòu),能夠提高軟件開發(fā)效率,增強(qiáng)穩(wěn)定性和可靠性。
[0004]為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是:提供一種二進(jìn)制通信結(jié)構(gòu),其特征在于:所述的二進(jìn)制通信結(jié)構(gòu)使用心跳機(jī)制來保證建立連接的網(wǎng)絡(luò)端點(diǎn),并始終保持聯(lián)系,建立連接的通信庫端點(diǎn)相互定時(shí)發(fā)送心跳消息,對(duì)端收到心跳后立即回復(fù),前者收到回復(fù)消息后把即可判斷對(duì)方為正常狀態(tài);當(dāng)雙方端點(diǎn)失去聯(lián)系超時(shí)后,則雙方都向上層報(bào)告聯(lián)系中斷;
所述的二進(jìn)制通信結(jié)構(gòu)使用ACK應(yīng)答機(jī)制來確保UDP通信時(shí)可能的丟包問題,每條消息發(fā)出后,都要等待對(duì)端返回ACK消息確認(rèn)收到,如果沒有收到對(duì)端的ACK消息,則重發(fā)原來的消息,直到收到ACK或者超時(shí),如果超時(shí),則確認(rèn)對(duì)端出現(xiàn)問題或網(wǎng)絡(luò)異常,并向上層手艮告;
所述的二進(jìn)制通信結(jié)構(gòu)使用分片機(jī)制,對(duì)過大的消息自動(dòng)進(jìn)行分片,打包成小片的消息發(fā)出,而對(duì)端的通信庫則根據(jù)分片上的序列號(hào)自動(dòng)重組回原來的消息,再報(bào)告給上層軟件,上層軟件可以對(duì)此不用關(guān)心,只需要收發(fā)消息,避免每個(gè)UDP的包太大,而導(dǎo)致在傳輸過程中間出錯(cuò);
所述的二進(jìn)制通信結(jié)構(gòu)使用回調(diào)函數(shù)的方式來向上層軟件報(bào)告收到的消息,二進(jìn)制通信結(jié)構(gòu)內(nèi)部產(chǎn)生的異常報(bào)告也通過回調(diào)函數(shù)的方式完成,上層軟件的每個(gè)模塊可以通過向跨平臺(tái)通信庫注冊(cè)自己關(guān)心的回調(diào)函數(shù),來確保收到自己需要的消息,對(duì)不需要的消息,則不會(huì)回調(diào)到上層。
[0005]在本發(fā)明一個(gè)較佳實(shí)施例中,所述的網(wǎng)絡(luò)端點(diǎn)包括終端和服務(wù)器之間,服務(wù)器與服務(wù)器之間。
[0006]本發(fā)明的有益效果是:本發(fā)明采用UDP來承載消息,使用心跳和ack機(jī)制來確保自動(dòng)檢測網(wǎng)絡(luò)異常和丟失重發(fā)的功能;二進(jìn)制通信結(jié)構(gòu)使得終端和服務(wù)器不再需要考慮通信的細(xì)節(jié),也無需為不同系統(tǒng)平臺(tái)的軟件開發(fā)不同的通信庫?!揪唧w實(shí)施方式】
[0007]下面對(duì)本發(fā)明的較佳實(shí)施例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對(duì)本發(fā)明的保護(hù)范圍做出更為清楚明確的界定。
[0008]本發(fā)明【具體實(shí)施方式】:上層軟件通過注冊(cè)回調(diào)函數(shù)來接收跨平臺(tái)通信庫收到的消息,跨平臺(tái)通信庫負(fù)責(zé)下層在以太網(wǎng)上的連接,在本實(shí)施例中,使用UDP報(bào)文來承載網(wǎng)絡(luò)兩個(gè)端點(diǎn)的消息。
[0009]本實(shí)施例提供的跨平臺(tái)通信庫的結(jié)構(gòu)示意主要包括接口模塊、網(wǎng)絡(luò)處理模塊、客戶端傳輸模塊、服務(wù)端傳輸模塊、數(shù)據(jù)幀處理模塊、日志管理模塊等組成。
[0010]本實(shí)施例提供的跨平臺(tái)通信庫的心跳請(qǐng)求流程在跨平臺(tái)通信庫啟動(dòng)后,定時(shí)器也被啟動(dòng),并通過定時(shí)消息使得通信庫可以以相同的間隔發(fā)出心跳消息。
[0011]本實(shí)施例提供的跨平臺(tái)通信庫的發(fā)送消息流程,跨平臺(tái)通信庫按照上層要求發(fā)出消息,并把發(fā)送的消息計(jì)入發(fā)送歷史表中,并設(shè)置重發(fā)次數(shù)和超時(shí)計(jì)數(shù);在每次定時(shí)消息來后,檢查發(fā)送消息歷史表,重發(fā)次數(shù)不為0的消息,再次重發(fā)并遞減重發(fā)次數(shù),超時(shí)計(jì)數(shù)為0的消息,轉(zhuǎn)入超時(shí)處理。
[0012]本發(fā)明二進(jìn)制通信結(jié)構(gòu)完成的功能有:(1)負(fù)責(zé)完成終端與服務(wù)器之間的關(guān)于用戶管理的功能;(2)負(fù)責(zé)完成賬戶管理功能;(3)負(fù)責(zé)完成終端與服務(wù)器之間的會(huì)議呼叫和控制功能;(4)負(fù)責(zé)完成終端之間的聊天功能;(5)所述的通信庫可以在位于不同網(wǎng)絡(luò)端點(diǎn)的終端與服務(wù)器之間,服務(wù)器與服務(wù)器之間使用心跳機(jī)制;(6)在使用UDP作為底層協(xié)議時(shí),通過開發(fā)ack確認(rèn)機(jī)制,使通信庫具備丟失重傳的功能,這樣在使用UDP較小的開銷下,具備了可靠連接的能力,能夠適用于不同的網(wǎng)絡(luò)環(huán)境;(7)使用分片技術(shù)對(duì)太長的消息進(jìn)行處理,自動(dòng)進(jìn)行分片和重組工作,即滿足了網(wǎng)絡(luò)傳輸層的要求,又簡化了上層軟件的處理工作,使上層軟件無需關(guān)心低層的細(xì)節(jié)。
[0013]以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種二進(jìn)制通信結(jié)構(gòu),其特征在于:所述的二進(jìn)制通信結(jié)構(gòu)使用心跳機(jī)制來保證建立連接的網(wǎng)絡(luò)端點(diǎn),并始終保持聯(lián)系,建立連接的通信庫端點(diǎn)相互定時(shí)發(fā)送心跳消息,對(duì)端收到心跳后立即回復(fù),前者收到回復(fù)消息后把即可判斷對(duì)方為正常狀態(tài);當(dāng)雙方端點(diǎn)失去聯(lián)系超時(shí)后,則雙方都向上層報(bào)告聯(lián)系中斷; 所述的二進(jìn)制通信結(jié)構(gòu)使用ACK應(yīng)答機(jī)制來確保UDP通信時(shí)可能的丟包問題,每條消息發(fā)出后,都要等待對(duì)端返回ACK消息確認(rèn)收到,如果沒有收到對(duì)端的ACK消息,則重發(fā)原來的消息,直到收到ACK或者超時(shí),如果超時(shí),則確認(rèn)對(duì)端出現(xiàn)問題或網(wǎng)絡(luò)異常,并向上層手艮告; 所述的二進(jìn)制通信結(jié)構(gòu)使用分片機(jī)制,對(duì)過大的消息自動(dòng)進(jìn)行分片,打包成小片的消息發(fā)出,而對(duì)端的通信庫則根據(jù)分片上的序列號(hào)自動(dòng)重組回原來的消息,再報(bào)告給上層軟件,上層軟件可以對(duì)此不用關(guān)心,只需要收發(fā)消息,避免每個(gè)UDP的包太大,而導(dǎo)致在傳輸過程中間出錯(cuò); 所述的二進(jìn)制通信結(jié)構(gòu)使用回調(diào)函數(shù)的方式來向上層軟件報(bào)告收到的消息,二進(jìn)制通信結(jié)構(gòu)內(nèi)部產(chǎn)生的異常報(bào)告也通過回調(diào)函數(shù)的方式完成,上層軟件的每個(gè)模塊可以通過向跨平臺(tái)通信庫注冊(cè)自己關(guān)心的回調(diào)函數(shù),來確保收到自己需要的消息,對(duì)不需要的消息,則不會(huì)回調(diào)到上層。
2.根據(jù)權(quán)利要求1所述的二進(jìn)制通信結(jié)構(gòu),其特征在于:所述的網(wǎng)絡(luò)端點(diǎn)包括終端和服務(wù)器之間,服務(wù)器與服務(wù)器之間。
【文檔編號(hào)】H04L29/06GK103532948SQ201310470816
【公開日】2014年1月22日 申請(qǐng)日期:2013年10月11日 優(yōu)先權(quán)日:2013年10月11日
【發(fā)明者】陳衛(wèi)明, 俞鴻驥, 俞建峰, 趙金平, 張?jiān)骑w 申請(qǐng)人:蘇州新海宜通信科技股份有限公司