func (s *server) Serve(l net.Listener) error {
	for {
		conn, err := l.Accept()
		if err != nil {
			return err
		}
		go s.ServeConn(conn)
	}
}
// Serve accepts incoming connections on the listener l, creating a new ServerConn and service goroutine for each.
// The service goroutines read protobuf rpc requests and then call the registered handlers to reply to them. Serve returns
// when l.Accept fails with errors.
// TODO Handle non fatal errors
Serve accepts incoming connections on the listener l, creating a new ServerConn and service goroutine for each.
The service goroutines read protobuf rpc requests and then call the registered handlers to reply to them. Serve returns
when l.Accept fails with errors.
TODO Handle non fatal errors
// Serve accepts incoming connections on the listener l creating a new ServerConn and service goroutine for each . // The service goroutines read protobuf rpc requests and then call the registered handlers to reply to them . Serve returns // when l . Accept fails with errors . // TODO Handle non fatal errors
func (s *server) Serve(l net.Listener) error {
	for {
		conn, err := l.Accept()
		if err != nil {
			return err
		}
		go s.ServeConn(conn)
	}
}
func ( s * server ) Serve ( l net . Listener ) error { for { conn , err := l . Accept ( ) if err != nil { return err } go s . ServeConn ( conn ) } }
Serve accepts incoming connections on the listener l, creating a new ServerConn and service goroutine for each.
Serve accepts incoming connections on the listener l creating a new ServerConn and service goroutine for each .