前言
創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、遂寧網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為遂寧等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。什么是TCP粘包問(wèn)題以及為什么會(huì)產(chǎn)生TCP粘包,本文不加討論。本文使用golang的bufio.Scanner
來(lái)實(shí)現(xiàn)自定義協(xié)議解包。
下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
協(xié)議數(shù)據(jù)包定義
本文模擬一個(gè)日志服務(wù)器,該服務(wù)器接收客戶(hù)端傳到的數(shù)據(jù)包并顯示出來(lái)
type Package struct { Version [2]byte // 協(xié)議版本,暫定V1 Length int16 // 數(shù)據(jù)部分長(zhǎng)度 Timestamp int64 // 時(shí)間戳 HostnameLength int16 // 主機(jī)名長(zhǎng)度 Hostname []byte // 主機(jī)名 TagLength int16 // 標(biāo)簽長(zhǎng)度 Tag []byte // 標(biāo)簽 Msg []byte // 日志數(shù)據(jù) }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。