GO实现Redis:GO实现TCP服务器(1)


  • 本文实现一个Echo TCP Server
  • 完整代码:https://github.com/csgopher/go-redis
  • 本文涉及以下文件:
    handler:处理连接,客户端传来的指令
    server:服务端
    echo:测试
    main

interface/tcp/Handler.go

type Handler interface {
   Handle(ctx context.Context, conn net.Conn)
   Close() error
}
  • Handler:业务逻辑的处理接口
    • Handle(ctx context.Context, conn net.Conn) 处理连接

tcp/server.go

type Config struct {
   
   
    Address string
}

func ListenAndServeWithSignal(cfg *Config, handler tcp.Handler) error {
   
   
    closeChan := make(chan struct{
   
   })
    listen, err := net.Listen("tcp", cfg.Address)
    if err != nil {
   
   
       return err
   }
    logger.Info("start listen")
    ListenAndServe(listen, handler, closeChan)
    return nil
}

func ListenAndServe(listener net.Listener,
                    handler tcp.Handler,
                    closeChan <-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值