System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)屬于數(shù)據(jù)分析,具體為一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法。
技術(shù)介紹
1、netty作為
技術(shù)介紹
的引入,帶來了一系列優(yōu)勢(shì),顯著提升了網(wǎng)絡(luò)編程的效率和體驗(yàn)。netty的ap?i設(shè)計(jì)簡(jiǎn)單直觀,降低了學(xué)習(xí)門檻,同時(shí)提供了強(qiáng)大的功能支持,包括多種編解碼器和協(xié)議的內(nèi)置支持。其高性能設(shè)計(jì),如內(nèi)存池和優(yōu)化的線程模型,確保了在處理高并發(fā)連接時(shí)的優(yōu)越性能。netty還修復(fù)了jdk?n?io的已知bug,提供了成熟穩(wěn)定的框架,并且得益于活躍的社區(qū)支持,能夠及時(shí)響應(yīng)bug修復(fù)和功能更新,滿足不同行業(yè)的商業(yè)應(yīng)用需求。
2、現(xiàn)有技術(shù)中,例如公開號(hào)為cn114357209的專利中記載的技術(shù)方案:一種向?qū)絿?guó)標(biāo)數(shù)據(jù)改化作業(yè)方法、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì),通過向?qū)絿?guó)標(biāo)數(shù)據(jù)改化作業(yè)方法,實(shí)現(xiàn)數(shù)據(jù)處理的可視化操作,包括對(duì)國(guó)標(biāo)數(shù)據(jù)和軍標(biāo)數(shù)據(jù)的歸納處理,以及在作業(yè)向?qū)Ы缑骘@示各個(gè)處理項(xiàng)的名稱,根據(jù)作業(yè)人員的選擇來執(zhí)行相應(yīng)的處理項(xiàng),通過獲取配置文件中該命令項(xiàng)的類名,通過類名獲取該命令項(xiàng),然后執(zhí)行該命令項(xiàng),完成處理項(xiàng)的執(zhí)行。
3、現(xiàn)有技術(shù)中,由于java?n?io的api復(fù)雜性、多線程管理以及平臺(tái)依賴性問題。javan?io雖然提供了非阻塞i/o操作,但其繁雜的類庫和ap?i增加了學(xué)習(xí)成本,需要開發(fā)者熟練掌握多個(gè)核心組件。此外,由于n?io編程涉及到reactor模式,對(duì)java多線程編程的熟悉成為必要,這增加了編程難度。同時(shí),一些平臺(tái)相關(guān)問題,如epo?l?l?bug,可能導(dǎo)致cpu資源的極大浪費(fèi),影響程序性能。
>技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)的目的在于提供一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,以解決
技術(shù)介紹
中提出的現(xiàn)有技術(shù)中,java?n?io存在ap?i復(fù)雜、需要多線程管理以及平臺(tái)依賴性的問題。
2、為解決上述技術(shù)問題,本專利技術(shù)所采用的技術(shù)方案是:
3、一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,包括以下步驟:
4、步驟s1,前端前置機(jī)與服務(wù)端建立通信,并且通過客戶端傳遞心跳至服務(wù)端,服務(wù)端收到心跳后建立連接;
5、步驟s2,服務(wù)端收到數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果返回給客戶端;
6、步驟s3,當(dāng)數(shù)據(jù)完全傳輸后,服務(wù)端進(jìn)行數(shù)據(jù)完整性的校驗(yàn),通過crc和自定義的數(shù)據(jù)解碼器進(jìn)行驗(yàn)證,在netty中使用自定義的解碼器;驗(yàn)證數(shù)據(jù)的完整性;
7、步驟s4,當(dāng)校驗(yàn)數(shù)據(jù)的完整性通過后,在通過讀取netty中的數(shù)據(jù)流轉(zhuǎn)換為byte[]數(shù)組進(jìn)行數(shù)據(jù)解析,分別對(duì)數(shù)組中的數(shù)據(jù)以16進(jìn)制進(jìn)行轉(zhuǎn)換、計(jì)算數(shù)據(jù);
8、步驟s5,保存至數(shù)據(jù)庫之前,首先驗(yàn)證數(shù)據(jù)是否是重復(fù)數(shù)據(jù);如若無誤,則保存到數(shù)據(jù)庫中,已存在則不入庫;入庫成功后應(yīng)答前端前置機(jī),數(shù)據(jù)已接收,避免前端前置機(jī)重復(fù)發(fā)送數(shù)據(jù)。
9、根據(jù)上述技術(shù)方案,步驟s2中,客戶端還需要對(duì)服務(wù)端的是否反饋進(jìn)行判斷,具體為:
10、如果客戶端收到服務(wù)端的反饋,則進(jìn)行下一次的數(shù)據(jù)傳輸過程;如果客戶端沒有收到反饋,再次進(jìn)行心跳發(fā)送;如果心跳發(fā)送次數(shù)大于或等于三次,發(fā)送心跳包測(cè)試服務(wù)端狀態(tài);如果客戶端數(shù)據(jù)發(fā)送失敗,應(yīng)當(dāng)記錄傳輸失敗的時(shí)間點(diǎn),并按照不小于20s的間隔嘗試與服務(wù)端重新建立新的連接;重新建立新的連接收,應(yīng)優(yōu)先傳輸最近時(shí)間點(diǎn)的數(shù)據(jù);然后再重新傳輸失敗時(shí)間點(diǎn)后的數(shù)據(jù)。
11、根據(jù)上述技術(shù)方案,步驟s3中,驗(yàn)證數(shù)據(jù)的完整性包括以下步驟:
12、步驟s301,獲取數(shù)據(jù)包的可讀長(zhǎng)度;
13、步驟s302,標(biāo)記數(shù)據(jù)包包頭,以方便讀完所有的數(shù)據(jù)后能復(fù)讀數(shù)據(jù);
14、步驟s303,所有可讀數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組,數(shù)組指針會(huì)指向最后一個(gè)數(shù)據(jù);
15、步驟s304,重置當(dāng)前指針到包頭,用于重新讀取接受的數(shù)據(jù),直至數(shù)據(jù)接收完;
16、步驟s305,判斷數(shù)據(jù)包長(zhǎng)度與數(shù)據(jù)包中提供的數(shù)據(jù)長(zhǎng)度是否正確;數(shù)據(jù)長(zhǎng)度不正確繼續(xù)等待數(shù)據(jù)接受直至完整;
17、步驟s306,判斷數(shù)據(jù)包頭是否為約定的字節(jié);當(dāng)不為約定字節(jié)時(shí),斷開當(dāng)前鏈接。
18、根據(jù)上述技術(shù)方案,步驟s4中,數(shù)據(jù)的轉(zhuǎn)換和計(jì)算包括心跳數(shù)據(jù)以及交調(diào)數(shù)據(jù)包。
19、根據(jù)上述技術(shù)方案,心跳數(shù)據(jù)的計(jì)算具體為:
20、步驟s4011,當(dāng)前數(shù)據(jù)解析為心跳數(shù)據(jù)時(shí),獲取數(shù)據(jù)中的心跳狀態(tài),判斷設(shè)備是否在線,并且組裝應(yīng)答回復(fù)前置機(jī)已接收到心跳數(shù)據(jù);
21、步驟s4012,獲取到設(shè)備狀態(tài)后,通過websocket即時(shí)通信,發(fā)送設(shè)備在線狀態(tài),以達(dá)到實(shí)時(shí)呈現(xiàn)設(shè)備狀態(tài)。
22、根據(jù)上述技術(shù)方案,交調(diào)數(shù)據(jù)包的計(jì)算具體為:
23、步驟s4021,當(dāng)數(shù)據(jù)包為傳輸與反饋類或數(shù)據(jù)完整類,獲取當(dāng)中的交通調(diào)查數(shù)據(jù)、圖片數(shù)據(jù),組裝為定制的交通數(shù)據(jù)后入庫;
24、步驟s4022,當(dāng)數(shù)據(jù)包為數(shù)據(jù)完整類,解析數(shù)據(jù)包為反饋信息數(shù)據(jù)包、重新傳輸數(shù)據(jù)包的應(yīng)答響應(yīng)數(shù)據(jù)時(shí),組裝為前端前置機(jī)可識(shí)別的數(shù)據(jù)類型,發(fā)送給前端前置機(jī);
25、步驟s4023,當(dāng)數(shù)據(jù)包為應(yīng)答數(shù)據(jù),由服務(wù)端解析數(shù)據(jù)包為應(yīng)答指令判斷前端前置機(jī)狀態(tài)與當(dāng)前服務(wù)端信息,返回信息反饋給前端前置機(jī);
26、步驟s4024,服務(wù)端可自行配置修改指令,發(fā)送到前端前置機(jī),并且服務(wù)端修改指令后,再由客戶端接收到指令做出修改動(dòng)作后,通過應(yīng)答數(shù)據(jù)包傳遞給服務(wù)端修改是否成功的答復(fù)。
27、與現(xiàn)有技術(shù)相比,本專利技術(shù)具有以下有益效果:
28、本專利技術(shù)中的方案,通過簡(jiǎn)化的ap?i降低了開發(fā)難度,提供了高性能的網(wǎng)絡(luò)通信能力,尤其是在高并發(fā)場(chǎng)景下。它通過內(nèi)存池和對(duì)象池等技術(shù)優(yōu)化了內(nèi)存管理,支持廣泛的協(xié)議并允許自定義擴(kuò)展,同時(shí)擁有穩(wěn)定性和可靠性,得益于其活躍的社區(qū)和詳盡文檔。netty還具備強(qiáng)大的安全性支持,并且已經(jīng)在多個(gè)行業(yè)中得到廣泛應(yīng)用和驗(yàn)證,確保了其作為網(wǎng)絡(luò)編程框架的卓越性能和實(shí)用性。統(tǒng)一使用規(guī)范的解碼方式,數(shù)據(jù)通信協(xié)議。在不同的網(wǎng)絡(luò)環(huán)境下都可使用,上手簡(jiǎn)單,入門快捷。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:步驟S2中,客戶端還需要對(duì)服務(wù)端的是否反饋進(jìn)行判斷,具體為:
3.根據(jù)權(quán)利要求1所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:步驟S3中,驗(yàn)證數(shù)據(jù)的完整性包括以下步驟:
4.根據(jù)權(quán)利要求1所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:步驟S4中,數(shù)據(jù)的轉(zhuǎn)換和計(jì)算包括心跳數(shù)據(jù)以及交調(diào)數(shù)據(jù)包。
5.根據(jù)權(quán)利要求4所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:心跳數(shù)據(jù)的計(jì)算具體為:
6.根據(jù)權(quán)利要求5所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:交調(diào)數(shù)據(jù)包的計(jì)算具體為:
【技術(shù)特征摘要】
1.一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:步驟s2中,客戶端還需要對(duì)服務(wù)端的是否反饋進(jìn)行判斷,具體為:
3.根據(jù)權(quán)利要求1所述的一種基于netty的國(guó)標(biāo)交調(diào)數(shù)據(jù)的解析儲(chǔ)存方法,其特征在于:步驟s3中,驗(yàn)證數(shù)據(jù)的完整性包括以下步驟:
<...【專利技術(shù)屬性】
技術(shù)研發(fā)人員:劉雙僑,趙宏,孫吉?jiǎng)?/a>,鄧?guó)櫼?/a>,
申請(qǐng)(專利權(quán))人:四川易方智慧科技有限公司,
類型:發(fā)明
國(guó)別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。