框架要先把整体的结构定义好,一般都是在$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![]()
server.go
package main import ( zinx/znet ) func main() { server:=znet.NewServer([zinx]) server.Server() }