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

📄 loggingreceiver.java

📁 实现在电脑平台上控制短信modem或手机进行通讯的jar包和相关实例
💻 JAVA
字号:
/* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software * License version 1.1, a copy of which has been included with this * distribution in the LICENSE.txt file.  */package org.apache.log4j.chainsaw;import java.io.EOFException;import java.io.IOException;import java.io.ObjectInputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.SocketException;import org.apache.log4j.Logger;import org.apache.log4j.spi.LoggingEvent;/** * A daemon thread the processes connections from a * <code>org.apache.log4j.net.SocketAppender.html</code>. * * @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a> */class LoggingReceiver extends Thread {    /** used to log messages **/    private static final Logger LOG = Logger.getLogger(LoggingReceiver.class);    /**     * Helper that actually processes a client connection. It receives events     * and adds them to the supplied model.     *     * @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a>     */    private class Slurper implements Runnable {        /** socket connection to read events from **/        private final Socket mClient;        /**         * Creates a new <code>Slurper</code> instance.         *         * @param aClient socket to receive events from         */        Slurper(Socket aClient) {            mClient = aClient;        }        /** loops getting the events **/        public void run() {            LOG.debug("Starting to get data");            try {                final ObjectInputStream ois =                    new ObjectInputStream(mClient.getInputStream());                while (true) {                    final LoggingEvent event = (LoggingEvent) ois.readObject();                    mModel.addEvent(new EventDetails(event));                }            } catch (EOFException e) {                LOG.info("Reached EOF, closing connection");            } catch (SocketException e) {                LOG.info("Caught SocketException, closing connection");            } catch (IOException e) {                LOG.warn("Got IOException, closing connection", e);            } catch (ClassNotFoundException e) {                LOG.warn("Got ClassNotFoundException, closing connection", e);            }            try {                mClient.close();            } catch (IOException e) {                LOG.warn("Error closing connection", e);            }        }    }    /** where to put the events **/    private final MyTableModel mModel;    /** server for listening for connections **/    private final ServerSocket mSvrSock;    /**     * Creates a new <code>LoggingReceiver</code> instance.     *     * @param aModel model to place put received into     * @param aPort port to listen on     * @throws IOException if an error occurs     */    LoggingReceiver(MyTableModel aModel, int aPort) throws IOException {        setDaemon(true);        mModel = aModel;        mSvrSock = new ServerSocket(aPort);    }    /** Listens for client connections **/    public void run() {        LOG.info("Thread started");        try {            while (true) {                LOG.debug("Waiting for a connection");                final Socket client = mSvrSock.accept();                LOG.debug("Got a connection from " +                          client.getInetAddress().getHostName());                final Thread t = new Thread(new Slurper(client));                t.setDaemon(true);                t.start();            }        } catch (IOException e) {            LOG.error("Error in accepting connections, stopping.", e);        }    }}

⌨️ 快捷键说明

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