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

📄 tcpserver.java

📁 iiitAccessServer是一个用Java编写的基于规则的企业鉴别系统。它作为一个服务器工作
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        os.println("ERROR 101: Syntax error");                    }                    else if (operator.equals("=") && argument.equals(""))                    {                        os.println("ERROR 101: Syntax error");                    }                    else if (cmd.equalsIgnoreCase("SETUSER") && argument.indexOf(" ") == -1)                    {                        boolean flag = true;                        if (verifyUser)                        {                            long t = System.currentTimeMillis();                            flag = resolver.verifyUser(argument);                            t = System.currentTimeMillis() - t;                            logger.info("User <" + argument + "> verified, ellapsed Time = " + t + "ms");                        }                        if (flag)                        {                            user = argument;                            logger.info("Setting user = <" + argument + ">");                            os.println("OK");                        }                        else                        {                            user = null;                            logger.error("Invalid user ID = <" + argument + ">");                            os.println("ERROR 202: Invalid user ID");                        }                    }                    else if (cmd.equalsIgnoreCase("EXPR"))                    {                        if (user == null)                        {                            logger.error("No user set");                            os.println("ERROR 200: No user set");                        }                        else                        {                            logger.info("Evaluating <" + argument +                                 "> for user <" + user + ">");                            long t = System.currentTimeMillis();                            try                             {                                boolean answer = evaluator.evaluateExpression(user, argument);                                                                    t = System.currentTimeMillis() - t;                                os.println(answer);                                os.println("OK");                                                                    logger.info("Answer = <" + answer +                                     ">, ellapsed Time = " + t + "ms");                            }                            catch (ParserException pe)                            {                                logger.error("Error while parsing expression <" + argument + ">", pe);                                os.println("ERROR 201: Expression <" + argument + "> can not be evaluated - " + pe.getMessage());                            }                        }                    }                    else                    {                        os.println("ERROR 100: Unknown command");                    }                }                else                {                    os.println("ERROR 101: Syntax error");                }            }                        return result;        }                /** This is the main loop of the server. It receives and dispatches the commands         * and sends the results back to the client.         */                public void run()        {            ignoreCase = AccessServer.getIgnoreCase();                        pCommandLine = Pattern.compile("^\\s*([a-zA-Z0-9]+)\\s*(=?)\\s*(.*)\\s*$");            InetAddress inetAdr = socket.getInetAddress();            String ipAddr = inetAdr.getHostAddress();            int port = socket.getPort();            logger.info("Connection opened from " + ipAddr +                     " (" + inetAdr.getCanonicalHostName() + ") port " + port);            if (ipAddr.equals("0:0:0:0:0:0:0:1") || ipAddr.equals("127.0.0.1"))            {                logger.info("Connection from localhost recognized");                localHostFlag = true;            }                        try            {                            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));                PrintStream os = new PrintStream(socket.getOutputStream());                os.println("iiitAccessServer - For help send command \"HELP\"");                os.println("OK");                            while (running)                {                    String request = is.readLine();                                    if (request == null)                        running = false;                    else                        running = running && processLine(os, request);                }                                logger.info("Connection to " + ipAddr + " port " + port + " closed.");                is.close();                os.close();                socket.close();            }            catch (IOException e)            {                if (running)                    logger.error("IO exception caught while listening to " + ipAddr + " port " + port, e);                                try                {                    socket.close();                }                catch (IOException ie)                {                    // Do nothing                }                                }                        handlers.remove(this);        }    }}/** * $Log: TcpServer.java,v $ * Revision 1.14  2003/04/14 20:41:41  joerg * Setting name for thread. * * Revision 1.13  2003/04/13 21:09:56  joerg * Package structure modified * * Revision 1.12  2003/04/13 20:28:01  joerg * Package structure modified * * Revision 1.11  2003/04/13 20:16:42  joerg * Package structure modified * * Revision 1.10  2003/03/27 20:39:22  joerg * Names of constants changed. * * Revision 1.9  2003/01/17 19:57:48  joerg * Wenn die globale Config-Variable VerifyUser den Wert TRUE * hat, wird beim Kommando setuser die UserId ueberprueft. * * Revision 1.8  2003/01/04 17:15:43  joerg * Zus鋞zliche Config-Option IgnoreCase * * Revision 1.7  2003/01/02 16:31:17  joerg * Fehlerkorrektur * * Revision 1.6  2003/01/01 21:16:55  joerg * Fehlermeldungen um eindeutige Nummern erweitert. * * Revision 1.5  2003/01/01 21:04:18  joerg * Copyright-Statement aktualisiert * * Revision 1.4  2002/12/27 20:50:23  joerg * Fehlerbehandlung beim Oeffnen des Sockets * * Revision 1.3  2002/12/22 21:02:10  joerg * Fehler beim shutdown() behoben * * Revision 1.2  2002/12/22 20:45:23  joerg * shutdown()-Methode eingebaut * * Revision 1.1  2002/12/19 15:24:23  joerg * Reparatur des CVS-Repositories * * Revision 1.17  2002/12/09 21:14:15  joerg * AccessServerThreadPluginIf umbenannt in ThreadPluginIf * * Revision 1.16  2002/12/09 19:29:17  joerg * Versionsdaten in allen JavaDoc-Klassenbeschreibungen ergaenzt * * Revision 1.15  2002/12/09 10:35:09  joerg * Javadoc vervollstaendigt * DefaultPort ist jetzt 54321 * * Revision 1.14  2002/12/08 14:35:01  joerg * Plugin-Interface neu strukturiert * * Revision 1.13  2002/11/30 21:19:46  joerg * Kommando-Verarbeitung komplett ueberarbeitet * * Revision 1.12  2002/11/27 22:30:34  joerg * Fehlermeldung verbessert * * Revision 1.11  2002/11/26 14:57:14  joerg * Fehlerbehandlung korrigiert. * * Revision 1.10  2002/11/26 10:56:06  joerg * Package exprparser durch parser erstzt. * * Revision 1.9  2002/11/21 08:34:23  joerg * Ausgaben an den Client ueberarbeitet * * Revision 1.8  2002/11/20 11:10:38  joerg * Umgebaut zumServerPlugin * ParserExceptions werden behandelt * * Revision 1.7  2002/11/06 11:15:47  joerg * Jede Instanz hat jetzt ihren eigenen ExpressionEvaluator * * Revision 1.6  2002/11/04 09:38:09  joerg * Klasse ExpressionResolver ins Package AccessServer verschoben * und in ExpressionEvaluator umbenannt. * * Revision 1.5  2002/11/03 21:56:27  joerg * Aufloesung von Ausdruecken implementiert. * * Revision 1.4  2002/11/03 20:39:08  joerg * Log-Ausgaben an neuen Klassenname angepasst. * * Revision 1.3  2002/11/03 20:31:46  joerg * Klasse TcpListener umbenannt in TcpServer * * Revision 1.2  2002/11/03 20:28:36  joerg * Klasse TcpServer als InnerClass TcpHandler nach TcpListener verschoben. * * Revision 1.1  2002/11/03 14:45:03  joerg * Klassen neu angelegt * */

⌨️ 快捷键说明

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