/**
 * Main.java
 * Java高速起動プログラム 'Mercury'のJava仮想マシン部を起動する
 * mainメソッドを提供する。
 *
 * Created: Sat Jan 25 21:18:45 2003
 *
 * @author <a href="mailto:toru@02.246.ne.jp"></a>
 * @version $Revision: 1.2 $
 */
import java.net.ServerSocket;
import java.io.IOException;

public class Main {
    private static int DEFAULT_PORT_NUMBER = 2345;
    private static int MINIMUM_PORT_NUMBER = 0;
    private static int MAXIMUM_PORT_NUMBER = 65535;

    public static void main(String[] args) {
        System.out.println("Java Fast Launch Program 'Mercury' $Date: 2003/03/08 06:51:12 $");
        System.out.println("Copyright (c) 2002, TAKAHASHI,Toru <torutk@02.246.ne.jp>");
        int portNumber = DEFAULT_PORT_NUMBER;
        for (int i=0; i<args.length; i++) {
            if (args[i].startsWith("-Port=")) {
                int number = Integer.parseInt( (args[i].split("="))[1]);
                if (MINIMUM_PORT_NUMBER < number &&
                    number < MAXIMUM_PORT_NUMBER)
                {
                    portNumber = number;
                }
            }
        }

        try {
            System.out.println("Using port:" + portNumber);
            ServerSocket server = new ServerSocket(portNumber);
            ListenerThread listenerThread =
                new ListenerThread(new CommandDispatcher(), server);
            listenerThread.start();
        } catch (IOException e) {
            System.err.println("Socket creation error for port " + portNumber);
            e.printStackTrace();
        }
    }
} // Main
