func main() { // to catch all uncaught panic defer utils.PrintPanicStack() // open profiling go func() { log.Info(http.ListenAndServe("0.0.0.0:6060", nil)) }() // set log prefix log.SetPrefix(SERVICE) // resolve address & start listening tcpAddr, err := net.ResolveTCPAddr("tcp4", _port) checkError(err) listener, err := net.ListenTCP("tcp", tcpAddr) checkError(err) log.Info("listening on:", listener.Addr()) // startup startup() LOOP: // loop accepting for { conn, err := listener.AcceptTCP() if err != nil { log.Warning("accept failed:", err) continue } go handleClient(conn) // start a goroutine for every incoming connection for reading // check server close signal select { case <-die: listener.Close() break LOOP default: } } // server closed, wait forever // other options: // select{} -- may cause deadlock detected error, not tested yet for { <-time.After(time.Second) } }
func main() { defer utils.PrintPanicStack() go func() { log.Info(http.ListenAndServe("0.0.0.0:6060", nil)) }() log.SetPrefix(SERVICE) // resolve tcpAddr, err := net.ResolveTCPAddr("tcp4", _port) checkError(err) listener, err := net.ListenTCP("tcp", tcpAddr) checkError(err) log.Info("listening on:", listener.Addr()) // init services sp.Init() // startup startup() // loop accepting LOOP: for { conn, err := listener.AcceptTCP() if err != nil { log.Warning("accept failed:", err) continue } go handleClient(conn) // check server close signal select { case <-die: listener.Close() break LOOP default: } } // server closed, wait forever for { <-time.After(time.Second) } }
func main() { log.SetPrefix(SERVICE) // 监听 lis, err := net.Listen("tcp", _port) if err != nil { log.Critical(err) os.Exit(-1) } log.Info("listening on ", lis.Addr()) // 注册服务 s := grpc.NewServer() ins := &server{} ins.init() pb.RegisterRankingServiceServer(s, ins) // 开始服务 s.Serve(lis) }
func main() { log.SetPrefix(SERVICE) // 监听 lis, err := net.Listen("tcp", _port) if err != nil { log.Critical(err) os.Exit(-1) } log.Info("listening on ", lis.Addr()) // 注册服务 s := grpc.NewServer() ins := new(server) pb.RegisterGameServiceServer(s, ins) // 初始化Services sp.Init("snowflake") // 开始服务 s.Serve(lis) }
func main() { log.SetPrefix(SERVICE) arch := &Archiver{} arch.init() <-arch.stop }