基于Golang實(shí)現(xiàn)TCP端口轉(zhuǎn)發(fā)并記錄轉(zhuǎn)發(fā)數(shù)據(jù)
2022-08-24 17:33 作者:yanpengquan | 我要投稿
最近在完成工作時(shí)遇到物聯(lián)網(wǎng)設(shè)備的鏈接及上報(bào)內(nèi)容不清楚現(xiàn)象,且有時(shí)候后端服務(wù)出現(xiàn)故障導(dǎo)致無(wú)法完成設(shè)備上報(bào)的數(shù)據(jù)處理,為了方便調(diào)試和保證物聯(lián)網(wǎng)設(shè)備的正常工作,設(shè)計(jì)并編寫此小軟件用于跨平臺(tái)完成TCP鏈接接入并選擇個(gè)合適的目標(biāo)節(jié)點(diǎn)進(jìn)行連接,支持復(fù)制鏈接內(nèi)容用于內(nèi)外網(wǎng)調(diào)試等功能。所有代碼基于Golang完成。
一、配置文件定義
使用golang庫(kù):github.com/spf13/viper 進(jìn)行配置文件的管理工作
該庫(kù)支持多種配置文件格式且具有較強(qiáng)的擴(kuò)展性,目前我主要使用yaml和json格式配置文件
為了滿足配置需求,每個(gè)鏈接節(jié)點(diǎn)的配置結(jié)構(gòu)如下:
二、讀取配置文件
三、啟動(dòng)服務(wù)并進(jìn)行配置文件解析
四、接受連接
五、轉(zhuǎn)發(fā)數(shù)據(jù)并記錄
源碼:https://gitee.com/tansuyun/tcp-port-forwarding
標(biāo)簽: