func (server *Server) Serve(listener net.Listener) error {

	defer listener.Close()


	logger := server.logger()


	handler := server.Handler
	if nil == handler {
//@TODO: Should this be a "ShellHandler" instead, that gives a shell-like experience by default
//       If this is changd, then need to change the comment in the "type Server struct" definition.
		logger.Debug("Defaulted handler to EchoHandler.")
		handler = EchoHandler
	}


	for {
		// Wait for a new TELNET client connection.
		logger.Debugf("Listening at %q.", listener.Addr())
		conn, err := listener.Accept()
		if err != nil {
//@TODO: Could try to recover from certain kinds of errors. Maybe waiting a while before trying again.
			return err
		}
		logger.Debugf("Received new connection from %q.", conn.RemoteAddr())

		// Handle the new TELNET client connection by spawning
		// a new goroutine.
		go server.handle(conn, handler)
		logger.Debugf("Spawned handler to handle connection from %q.", conn.RemoteAddr())
	}
}
func (server *Server) Serve(listener net.Listener) error {

	defer listener.Close()


	logger := server.logger()


	handler := server.Handler
	if nil == handler {


		logger.Debug("Defaulted handler to EchoHandler.")
		handler = EchoHandler
	}


	for {
		
		logger.Debugf("Listening at %q.", listener.Addr())
		conn, err := listener.Accept()
		if err != nil {

			return err
		}
		logger.Debugf("Received new connection from %q.", conn.RemoteAddr())

		
		
		go server.handle(conn, handler)
		logger.Debugf("Spawned handler to handle connection from %q.", conn.RemoteAddr())
	}
}
func ( server * Server ) Serve ( listener net . Listener ) error { defer listener . Close ( ) logger := server . logger ( ) handler := server . Handler if nil == handler { //@TODO: Should this be a "ShellHandler" instead, that gives a shell-like experience by default //       If this is changd, then need to change the comment in the "type Server struct" definition. logger . Debug ( " " ) handler = EchoHandler } for { // Wait for a new TELNET client connection. logger . Debugf ( " " , listener . Addr ( ) ) conn , err := listener . Accept ( ) if err != nil { //@TODO: Could try to recover from certain kinds of errors. Maybe waiting a while before trying again. return err } logger . Debugf ( " " , conn . RemoteAddr ( ) ) // Handle the new TELNET client connection by spawning // a new goroutine. go server . handle ( conn , handler ) logger . Debugf ( " " , conn . RemoteAddr ( ) ) } }
// Serve accepts an incoming TELNET client connection on the net.Listener `listener`.
Serve accepts an incoming TELNET client connection on the net . Listener listener .