⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tahitidaemon.java

📁 aglet的部分源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        ServerSocket serverSocket = null;        try {            serverSocket = new ServerSocket(_control_port_num);        } catch (IOException e) {            System.err.println("Could not listen on port: " + _control_port_num);            System.exit(1);        }        // Main control loop        while (continue_processing) {            try {                clientSocket = serverSocket.accept();                socket_active = true;            } catch (IOException e) {                System.err.println("Accept failed.");                System.exit(1);            }            try {                out = new PrintWriter(clientSocket.getOutputStream(), true);                out.println(_banner_string);                out.println(_version_string);                out.println("Connected to:" + serverSocket.toString());            } catch (IOException e) {                System.err.println("getOutputStream failed.");                System.exit(1);            }            try {                in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));            } catch (IOException e) {                System.err.println("getInputStream failed.");                System.exit(1);            }            //holds any strings to be returned to the client            String outputString = null;            // read loop, processes commands as            // they are read from the socket            while (continue_processing && socket_active) {                try {                    String line = in.readLine();                    outputString = command(line);                    out.println(outputString);                    out.println("done.");                } catch (Throwable ex) {                    if (debug) {                      ex.printStackTrace();                        System.err.println(ex.getMessage());                        System.err.println("Socket closed");                    socket_active = false;                }                    out.println("Exception: ["+ex.toString()+"] With the message: ["+ex.getMessage()+"] has occurred, continuing.");                }            }        }        try {            AgletRuntime.getAgletRuntime().shutdown();            out.close();            in.close();            clientSocket.close();            serverSocket.close();        } catch (IOException e) {            System.err.println("close failed.");        }        if (reboot) {            System.exit(0);        } else {            System.exit(1);        }    }    /**     *  Called when an aglet request to show the document given as URL     *     * @param  event  an ContextEvent     * @since     * @see           Aglet#showDocument     */    public void showDocument(ContextEvent event) {        if (message) {            System.out.println("hyper link required :" + event.arg);        }    }    /**     *  Called to show the message     *     * @param  event  an ContextEvent     * @since     */    public void showMessage(ContextEvent event) {        if (message) {            System.out.println((String) event.arg);        }    }    /**     *  Interprets inputs from command line.     *     * @param  line           typed string     * @return                Description of the Returned Value     * @exception  Exception  Description of Exception     * @since     */    String command(String line) throws Exception {        Item item = null;        StringTokenizer st = new StringTokenizer(line, " \t");        if (st.hasMoreTokens()) {            String cmd = st.nextToken();            if ("shutdown".equalsIgnoreCase(cmd)) {                shutdown = true;                continue_processing = false;                return ("shutting down");            } else if ("reboot".equalsIgnoreCase(cmd)) {                reboot = true;                continue_processing = false;                return ("rebooting");            } else if ("list".equalsIgnoreCase(cmd)) {                return (list());            } else if ("debug".equalsIgnoreCase(cmd)) {                if (st.hasMoreTokens()) {                    if ("on".equalsIgnoreCase(st.nextToken())) {                        com.ibm.awb.misc.Debug.debug(true);                        debug = true;                    } else {                        com.ibm.awb.misc.Debug.debug(false);                        debug = false;                    }                }                com.ibm.awb.misc.Debug.list(System.err);                return (debug ? "debug on"                        : "debug off");            } else if ("msg".equalsIgnoreCase(cmd)) {                if (st.hasMoreTokens()) {                    if ("on".equalsIgnoreCase(st.nextToken())) {                        message = true;                    } else {                        message = false;                    }                }                    return (message ? "message on"                             : "message off");            } else if ("help".equalsIgnoreCase(cmd)) {                return ("help");            } else if ("create".equalsIgnoreCase(cmd)) {                URL url = null;                String name = "";                try {                 if (st.countTokens() == 2) {                    url = new URL(st.nextToken());                    name = st.nextToken();                } else if (st.countTokens() == 1) {                    name = st.nextToken();                  } else {                    return ("Usage: create [URL] name");                  }                  AgletProxy proxy = null;                  if (debug)                    System.err.println("Entering context.createAglet");                  proxy = context.createAglet(url, name, null);                  if (debug)                    System.err.println("Leaving context.createAglet");                  if (proxy != null) {                    return("Creation of Aglet "+name+" Succeeded.");                } else {                    return("Creation of Aglet "+name+" Failed.");                }                }                 catch (Throwable ex) {                  if (debug) {                    ex.printStackTrace();                    System.err.println(ex.getMessage());                  }                  return("Creation of Aglet ["+name+"] Failed. Exception was: ["+ex.toString()+"] Message was: ["+ex.getMessage()+"]");                }            }            /*             * This handles property, dispatch, clone, dispose, dialog             */            else if ((item = (Item)aglets.get(cmd)) != null) {                if (st.hasMoreTokens()) {                    String tokenString = st.nextToken();                    if ("property".equalsIgnoreCase(tokenString)) {                        return("Properties for: " + cmd + "\n" + item.toString());                    } else {                        item.command(tokenString, st);                    if (!item.isValid()) {                        removed(item);                        return ("Removed : " + cmd);                    }                    }                } else {                    return (item.toString());                }            } else {                return ("unknown command (or aglet not found): " + cmd);            }        }        return ("unknown command: " + line);    }    /**     *  Prints out the list of aglets     *     * @return                Description of the Returned Value     * @exception  Exception  Description of Exception     * @since     */    String list() throws Exception {        String returnString;        Enumeration e = aglets.keys();        returnString = "Aglet List empty";        if (e.hasMoreElements())            returnString = "Aglet List:\n";        while (e.hasMoreElements()) {            String k = (String) e.nextElement();            Item item = (Item) aglets.get(k);            // if (item.isValid()) {            returnString += k + " [" + item.proxy.getAgletClassName() + "] ";            // }        }        return (returnString);    }    /**     *  Description of the Method     *     * @param  proxy  Description of Parameter     * @since     */    private synchronized void added(AgletProxy proxy) {        aglets.put("aglet" + (serial++), new Item(proxy));    }    /**     *  Description of the Method     *     * @param  proxy  Description of Parameter     * @since     */    private synchronized void removed(AgletProxy proxy) {        Enumeration e = aglets.keys();        while (e.hasMoreElements()) {            Object k = e.nextElement();            if (aglets.get(k).equals(proxy)) {                aglets.remove(k);            }        }    }    /**     *  Description of the Method     *     * @param  item  Description of Parameter     * @since     */    private synchronized void removed(Item item) {        removed(item.proxy);    }    /**     *  Gets the UserManager attribute of the TahitiDaemon class     *     * @return    The UserManager value     * @since     */    public final static UserManager getUserManager() {        return _userManager;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -