使用cmux实现网络端口复用

本文介绍了Go语言中的cmux库,如何通过查看连接的第一个数据包来识别不同协议,实现在单个TCP监听器上同时服务HTTP、gRPC等协议。给出了一个创建cmux实例并为不同协议设置匹配规则的示例代码。

cmux的作用


一般情况下,每个端口只能为一个服务所用,如果复用,会报"port is already in use"

如果需要复用某个端口,那么可以使用cmux来实现(其实大多数情况下必要性不大.比如我就图8888端口吉利,http/grpc等服务都用这个端口)

cmux[1] 全称 Connection Mux, 是Go生态来复用端口的库, 可以在同一个TCP监听器上服务 gRPC、SSH、HTTPS、HTTP、Go RPC等几乎任何其他协议。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值