Golang 实现 TCP代理

Golang 实现 TCP代理Golang 实现 TCP代理 tcp代理实现 参照http.util.ReverseProxy 实现,服务与代理逻辑分离 构建一个tcp服务器,核心代码 构建一个tcp代理,核心代码 tcp服务器与

这是我参与8月更文挑战的第25天,活动详情查看:8月更文挑战

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人专栏

Golang 实现 TCP代理

tcp代理实现

构建一个tcp服务器

核心代码地址github.com/coderdao/ga…

构建一个tcp服务器步骤: 1、监听服务 2、获取构建新连接对象并设置超时时间及keepalive 3、设置方法退出时连接关闭 4、调用回调接口TcpHandler

var (
	addr = ":2002"
)

type tcpHandler struct {
}

func (t *tcpHandler) ServeTCP(ctx context.Context, src net.Conn) {
	src.Write([]byte("tcpHandler\n"))
}

//tcp服务器测试
log.Println("Starting tcpserver at " + addr)
tcpServ := tcp_proxy.TcpServer{
    Addr:    addr,
    Handler: &tcpHandler{},
}
fmt.Println("Starting tcp_server at " + addr)
tcpServ.ListenAndServe()

测试 telnet 127.0.0.1 2002

构建一个tcp代理

核心代码地址github.com/coderdao/ga…

构建一个tcp反向代理步骤: 1、代理实现TcpHandler回调方法结构 2、连接下游服务信 3、设置退出时关闭连接 4、—边读数据─边写数据

	//thrift代理测试
	rb := load_balance.LoadBanlanceFactory(load_balance.LbWeightRoundRobin)
	rb.Add("127.0.0.1:7002", "100")
	proxy := proxy.NewTcpLoadBalanceReverseProxy(&tcp_middleware.TcpSliceRouterContext{}, rb)
	tcpServ := tcp_proxy.TcpServer{Addr: addr, Handler: proxy,}
	fmt.Println("Starting tcp_proxy at " + addr)
	tcpServ.ListenAndServe()

win 开启 telnet 命令

一般情况下,TCP 测试方法http 测试直接访问地址能不能返回成功的方式并不一样。

开发过程中更多依赖于 Telnet 功能测试端口是否可用。

如果是 mac/linux 直接命令安装即可。而 window 则可以在设置中,查询 启动或关闭windows功能 的列表中 打开 Telnet 即可使用

使用命令测试 telnet 127.0.0.1 7002

今天的文章Golang 实现 TCP代理分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/16673.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注