[Go] 轻量服务器框架基础TCP服务模块
发布时间:2021-05-21 06:47:16 所属栏目:大数据 来源: https://www.jb51.cc
导读:框架要先把整体的结构定义好,一般都是在$GOPATH目录的src下建立自己的目录 ? ?zinterface是一些接口的定义 znet就是接口的具体实现 IServer.go package zinterfacetype IServer interface{ Start() Stop() Server()} server.go一个tcp服务端的基本业务,简
框架要先把整体的结构定义好,一般都是在$GOPATH目录的src下建立自己的目录 ? ?zinterface是一些接口的定义 znet就是接口的具体实现 IServer.go package zinterface
type IServer interface{
Start()
Stop()
Server()
}
server.go一个tcp服务端的基本业务,简单的原样回显 package znet import ( "fmt" lognetzinx/zinterface" ) type Server struct { Name string IP IPversion Port int } func (s *Server) Start() { log.Printf(%s %s:%d start...n,s.Name,s.IP,s.Port) addr,err := net.ResolveTCPAddr(s.IPversion,fmt.Sprintf(%s:%dif err != nil { log.Println(resolve tcp addr err net.ListenTCP(s.IPversion,addr) listen tcp err for { conn,1)"> listener.AcceptTCP() nil { log.Println(accept tcp err { b := make([]byte,512) len,1)"> conn.Read(b) nil { log.Println(read tcp err if _,err := conn.Write(b[:len]); err !=write tcp err Server) Stop() { } func (s *Server) Server() { s.Start() select{} } func NewServer(name ) zinterface.IServer { s := &Server{ Name: name,IP: 0.0.0.0tcp48999 |