分享go语言写的串口网口透传工具
工具地址:https://github.com/kekemuyu/tools/tree/master/snet
配置方法:
[serial]
PortName = COM23
BaudRate = 115200
MinimumReadSize = 4
[server]
ip=
port = 9000
启动工具后,会打开相应的串口和tcp服务并监听。客户端连接服务后就可以和串口通信了。
透传的原理如下:
// will block until connection close
func Join(c1 io.ReadWriteCloser, c2 io.ReadWriteCloser) {
var wait sync.WaitGroup
pipe := func(to io.ReadWriteCloser, from io.ReadWriteCloser) {
defer to.Close()
defer from.Close()
defer wait.Done()
var err error
_, err = io.Copy(to, from)
if err != nil {
log.Warn("join conns error, %v", err)
}
}
wait.Add(2)
go pipe(c1, c2)
go pipe(c2, c1)
wait.Wait()
return
}
这个函数是从frp反向代理工具那里学来的。
请先 后发表评论~