public static void main(String[] args) throws NumberFormatException, UnknownHostException {

    if (args.length > 2) {
      usage();
      return;
    }

    // null server address means bind to everything local
    NGListeningAddress listeningAddress;
    int timeoutMillis = NGConstants.HEARTBEAT_TIMEOUT_MILLIS;

    // parse the command line parameters, which
    // may be an inetaddress to bind to, a port number,
    // an inetaddress followed by a port, separated
    // by a colon, or the string "local:/path/to/socket"
    // for a Unix domain socket or Windows named pipe.
    // if a second parameter is provided it
    // is interpreted as the number of milliseconds to
    // wait between heartbeats before considering the
    // client to have disconnected.
    if (args.length != 0) {
      String[] argParts = args[0].split(":");
      String addrPart = null;
      String portPart = null;
      if (argParts.length == 2) {
        addrPart = argParts[0];
        portPart = argParts[1];
      } else if (argParts[0].indexOf('.') >= 0) {
        addrPart = argParts[0];
      } else {
        portPart = argParts[0];
      }
      if ("local".equals(addrPart) && portPart != null) {
        // Treat the port part as a path to a local Unix domain socket
        // or Windows named pipe.
        listeningAddress = new NGListeningAddress(portPart);
      } else if (addrPart != null && portPart != null) {
        listeningAddress =
            new NGListeningAddress(InetAddress.getByName(addrPart), Integer.parseInt(portPart));
      } else if (addrPart != null && portPart == null) {
        listeningAddress =
            new NGListeningAddress(InetAddress.getByName(addrPart), NGConstants.DEFAULT_PORT);
      } else {
        listeningAddress = new NGListeningAddress(null, Integer.parseInt(portPart));
      }
      if (args.length == 2) {
        timeoutMillis = Integer.parseInt(args[1]);
      }
    } else {
      listeningAddress = new NGListeningAddress(null, NGConstants.DEFAULT_PORT);
    }

    NGServer server = new NGServer(listeningAddress, DEFAULT_SESSIONPOOLSIZE, timeoutMillis);
    Thread t = new Thread(server);
    t.setName("NGServer(" + listeningAddress.toString() + ")");
    t.start();

    Runtime.getRuntime().addShutdownHook(new NGServerShutdowner(server));
  }
public static void main ( String [ ] args ) throws NumberFormatException , UnknownHostException { if ( args . length > 2 ) { usage ( ) ; return ; } NGListeningAddress listeningAddress ; int timeoutMillis = NGConstants . HEARTBEAT_TIMEOUT_MILLIS ; if ( args . length != 0 ) { String [ ] argParts = args [ 0 ] . split ( ":" ) ; String addrPart = null ; String portPart = null ; if ( argParts . length == 2 ) { addrPart = argParts [ 0 ] ; portPart = argParts [ 1 ] ; } else if ( argParts [ 0 ] . indexOf ( '.' ) >= 0 ) { addrPart = argParts [ 0 ] ; } else { portPart = argParts [ 0 ] ; } if ( "local" . equals ( addrPart ) && portPart != null ) { listeningAddress = new NGListeningAddress ( portPart ) ; } else if ( addrPart != null && portPart != null ) { listeningAddress = new NGListeningAddress ( InetAddress . getByName ( addrPart ) , Integer . parseInt ( portPart ) ) ; } else if ( addrPart != null && portPart == null ) { listeningAddress = new NGListeningAddress ( InetAddress . getByName ( addrPart ) , NGConstants . DEFAULT_PORT ) ; } else { listeningAddress = new NGListeningAddress ( null , Integer . parseInt ( portPart ) ) ; } if ( args . length == 2 ) { timeoutMillis = Integer . parseInt ( args [ 1 ] ) ; } } else { listeningAddress = new NGListeningAddress ( null , NGConstants . DEFAULT_PORT ) ; } NGServer server = new NGServer ( listeningAddress , DEFAULT_SESSIONPOOLSIZE , timeoutMillis ) ; Thread t = new Thread ( server ) ; t . setName ( "NGServer(" + listeningAddress . toString ( ) + ")" ) ; t . start ( ) ; Runtime . getRuntime ( ) . addShutdownHook ( new NGServerShutdowner ( server ) ) ; }
Creates and starts a new <code>NGServer</code>. A single optional argument is valid, specifying
the port on which this <code>NGServer</code> should listen. If omitted, <code>
NGServer.DEFAULT_PORT</code> will be used.

@param args a single optional argument specifying the port on which to listen.
@throws NumberFormatException if a non-numeric port is specified