溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

IM系統(tǒng)怎么調(diào)試TCP協(xié)議

發(fā)布時(shí)間:2021-07-12 17:01:36 來(lái)源:億速云 閱讀:176 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“IM系統(tǒng)怎么調(diào)試TCP協(xié)議”,在日常操作中,相信很多人在IM系統(tǒng)怎么調(diào)試TCP協(xié)議問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”IM系統(tǒng)怎么調(diào)試TCP協(xié)議”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

IM系統(tǒng)怎么調(diào)試TCP協(xié)議

最近負(fù)責(zé)瓜子IM系統(tǒng)開(kāi)發(fā)??蛻舳诉x用了微信開(kāi)源的Mars庫(kù)。定義通訊協(xié)議如下圖。

IM系統(tǒng)怎么調(diào)試TCP協(xié)議

20字節(jié)的header,包括headLength包頭長(zhǎng)度,clientVersion客戶端版本,cmdId命令I(lǐng)d號(hào),seq消息序列號(hào),bodyLength消息體長(zhǎng)度;消息內(nèi)容body長(zhǎng)度由header中的bodyLength標(biāo)識(shí)。

服務(wù)器(取名pigeon-gate)和客戶端(Mars)程序雛形開(kāi)發(fā)好之后,需要進(jìn)行協(xié)議聯(lián)調(diào),怎么確定Mars收發(fā)消息的行為是否符合預(yù)期呢(預(yù)期是閱讀Mars源代碼分析出來(lái)的)?抓取TCP消息包!

工具wireshark,安裝在IM服務(wù)器pigeon-gate 所在的機(jī)器,安裝方式自己百度。

打開(kāi)wireshark工具,在過(guò)濾器中輸入"tcp and ip.addr == 192.168.13.1"  (該IP是手機(jī)IP地址 ),表示只顯示來(lái)自192.168.13.1 IP地址的TCP數(shù)據(jù)。

IM系統(tǒng)怎么調(diào)試TCP協(xié)議

IM客戶端,發(fā)送一條消息,工具抓取到若干TCP數(shù)據(jù)包,其中紅框標(biāo)記的數(shù)據(jù)是客戶端發(fā)到服務(wù)器的消息數(shù)據(jù)(多試幾次就知道有效的數(shù)據(jù)是哪一條了)。

點(diǎn)擊數(shù)據(jù)看到該條TCP消息包內(nèi)容如下圖。

IM系統(tǒng)怎么調(diào)試TCP協(xié)議

藍(lán)色背景(光標(biāo))的內(nèi)容是客戶端發(fā)到服務(wù)器端的內(nèi)容(含header,body)。

非藍(lán)色背景的內(nèi)容可以簡(jiǎn)單理解為TCP協(xié)議的消息頭(我們自定義的數(shù)據(jù)可以算作TCP協(xié)議的消息體)。

比如紅色方框6個(gè)字節(jié)表示目的地(IM服務(wù)器)物理地址,測(cè)試服務(wù)器物理地址為 68-07-15-29-FE-3B;紫色方框表示消息來(lái)源(手機(jī) )物理地址,其他內(nèi)容可以查看TCP協(xié)議細(xì)節(jié)。

重點(diǎn)分析藍(lán)色背景區(qū)域,消息前4個(gè)字節(jié)是消息頭長(zhǎng)度 headLength

headLength,4字節(jié),TCP包內(nèi)容為"00 00 00 14",將16進(jìn)制轉(zhuǎn)換為10進(jìn)制為20。按照此方法得到

headLength = 20

clientVersion = 200

cmdId = 3

seq = 2

bodyLength = 36

根據(jù)收到的消息頭判斷Mars響應(yīng)的這條消息符合預(yù)期??蛻舳讼蚍?wù)器端發(fā)送消息的協(xié)議正確,服務(wù)器進(jìn)行相關(guān)處理??蛻舳讼蚍?wù)器端發(fā)送消息的協(xié)議聯(lián)調(diào)通過(guò)。

消息體是明文展示的,可以看到chupengyu幾個(gè)拼音字母。

到此,關(guān)于“IM系統(tǒng)怎么調(diào)試TCP協(xié)議”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI