public static void main(String argv[]) { if (argv.length == 2) { init(argv[0], argv[1]); } else { usage("Wrong number of arguments."); } try { cat.info("Listening on port " + port); ServerSocket serverSocket = new ServerSocket(port); while (true) { cat.info("Waiting to accept a new client."); Socket socket = serverSocket.accept(); cat.info("Connected to client at " + socket.getInetAddress()); cat.info("Starting new socket node."); new Thread(new SocketNode(socket, LogManager.getLoggerRepository()), "SimpleSocketServer-" + port).start(); } } catch (Exception e) { e.printStackTrace(); } }
@Override public void run() { mIsTerminating = false; try { LOGGER.info("Starting log4j server on port " + port); mServerSocket = new ServerSocket(port); while (true) { Socket socket = mServerSocket.accept(); LOGGER.info("Log4j server accepting connection from client at " + socket.getInetAddress()); new Thread(new SocketNode(socket, LogManager.getLoggerRepository())).start(); } } catch (Exception e) { if (!mIsTerminating) { LOGGER.error(e); } } }
public static void main(String args[]) throws Exception { int totalTests = 0; String prefix = null; if(args.length == 2) { totalTests = Integer.parseInt(args[0]); prefix = args[1]; } else { usage("Wrong number of arguments."); } LogLog.debug("Listening on port " + SocketServerTestCase.PORT); ServerSocket serverSocket = new ServerSocket(SocketServerTestCase.PORT); MDC.put("hostID", "shortSocketServer"); for(int i = 1; i <= totalTests; i++) { PropertyConfigurator.configure(prefix+i+".properties"); LogLog.debug("Waiting to accept a new client."); Socket socket = serverSocket.accept(); LogLog.debug("Connected to client at " + socket.getInetAddress()); LogLog.debug("Starting new socket node."); SocketNode sn = new SocketNode(socket, LogManager.getLoggerRepository()); Thread t = new Thread(sn); t.start(); t.join(); } }
/** * Call setLog4JConfigFilename before!!! */ public static void start() { if (thread_ != null) { System.out.println("========================="); System.out.println("Log4jSocketServer.start(): already active"); System.out.println("========================"); stop(); // throw new IllegalArgumentException("Log4jSocketServer already started (make sure to call super.tearDown() in your tests if you overwrite tearDown())"); } System.out.println("========================="); System.out.println("Log4jSocketServer.start()"); System.out.println("========================="); stop_ = false; serverSocket_ = null; thread_ = new Thread(new Runnable() { private List<Socket> socketNodeSockets_ = new LinkedList<Socket>(); public void run() { try { System.out.println("[Log4jSocketServer] Listening on port " + port); // System.setProperty("log4j.debug", "true"); serverSocket_ = new ServerSocket(port); while (true) { synchronized (syncObj_) { if (stop_) { return; } } System.out.println("[Log4jSocketServer] Waiting to accept a new client."); Socket socket = serverSocket_.accept(); System.out.println("[Log4jSocketServer] Connected to client at " + socket.getInetAddress()); System.out.println("[Log4jSocketServer] Starting new socket node."); SocketNode socketNode = new SocketNode(socket, LogManager.getLoggerRepository()); Thread thread = new Thread(socketNode, "SimpleSocketServer-" + port); thread.setDaemon(true); socketNodeSockets_.add(socket); thread.start(); } } catch (Exception e) { synchronized (syncObj_) { if (stop_) { return; } } e.printStackTrace(); } finally { System.out.println("[Log4jSocketServer] Cleaning up Log4jSocketServer mess... (" + socketNodeSockets_.size() + " sockets)"); thread_ = null; for (Iterator<Socket> it = socketNodeSockets_.iterator(); it.hasNext();) { Socket socket = it.next(); try { System.out.println("[Log4jSocketServer] Shutting down socket " + socket + "..."); socket.shutdownInput(); socket.shutdownOutput(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }); thread_.setDaemon(true); thread_.start(); try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }