前言
什么是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)景需求。