Serve start the Server main loop,.
()
| 99 | |
| 100 | // Serve start the Server main loop,. |
| 101 | func (s *Server) Serve() { |
| 102 | serverLoop: |
| 103 | for { |
| 104 | select { |
| 105 | case <-s.ctx.Done(): |
| 106 | log.Info("stopping Server Loop") |
| 107 | break serverLoop |
| 108 | default: |
| 109 | conn, err := s.Listener.Accept() |
| 110 | if err != nil { |
| 111 | continue |
| 112 | } |
| 113 | log.WithField("remote", conn.RemoteAddr().String()).Info("accept") |
| 114 | go s.serveConn(conn) |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | func (s *Server) serveConn(conn net.Conn) { |
| 120 | le := log.WithField("remote_addr", conn.RemoteAddr()) |