框架要先把整體的結構定義好,一般都是在$GOPATH目錄的src下建立自己的目錄

zinterface是一些介面的定義
znet就是介面的具體實作
IServer.go
package zinterfacetype IServer interface{ Start() Stop() Server()}server.go一個tcp服務端的基本業務,簡單的原樣回顯
package znetimport ( "fmt" "log" "net" "zinx/zinterface")type Server struct { Name string IP string IPversion string 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:%d", s.IP, s.Port)) if err != nil { log.Println("resolve tcp addr err ", err) return } listener, err := net.ListenTCP(s.IPversion, addr) if err != nil { log.Println("listen tcp err ", err) return } go func() { for { conn, err := listener.AcceptTCP() if err != nil { log.Println("accept tcp err ", err) continue } go func() { for { b := make([]byte, 512) len, err := conn.Read(b) if err != nil { log.Println("read tcp err ", err) continue } if _, err := conn.Write(b[:len]); err != nil { log.Println("write tcp err ", err) continue } } }() } }()}func (s *Server) Stop() {}func (s *Server) Server() { s.Start() select{}}func NewServer(name string) zinterface.IServer { s := &Server{ Name: name, IP: "0.0.0.0", IPversion: "tcp4", Port: 8999, } return s}
單獨在src下創建測驗目錄

server.go
package mainimport ( "zinx/znet")func main() { server:=znet.NewServer("[zinx]") server.Server()}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55010.html
標籤:Go
上一篇:c語言c++
下一篇:關于C++編程
