📄 pop3server.java
字号:
/**************************************************************** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * * * Copyright 2008 Jun Li(SiChuan University, the School of * * Software Engineering). All rights reserved. * * * * Licensed to the JMS under one or more contributor license * * agreements. See the LICENCE file distributed with this * * work for additional information regarding copyright * * ownership. The JMS licenses this file you may not use this * * file except in compliance with the License. * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.jpxx.mail.Pop3;import java.io.IOException;import java.net.ServerSocket;import java.util.ArrayList;import java.util.Iterator;import org.apache.log4j.Logger;import org.jpxx.mail.Factory;import org.jpxx.mail.Service.AbstractServer;import org.jpxx.mail.Config.SysConfig;/** * Manage All Pop3 Server * * @author Jun Li * @version $Revision: 0.0.1 $, $Date: 2008/04/27 13:47:00 $ * */public class Pop3Server extends AbstractServer { /** * Creates an instance of Logger and initializes it. * It is to write log for <code>Pop3Server</code>. */ private Logger log = Factory.getSingletonInstance().getLogger(this); /** * Singleton Instance of Pop3Server. */ private static Pop3Server singletonInstance = null; /** * Get Singleton Instance of Pop3Server. * @return Singleton Instance of SmtpServer */ public static Pop3Server getSingletonInstance() { if (singletonInstance == null) { singletonInstance = new Pop3Server(); } return singletonInstance; } private Pop3Server() { super(); } /** * Start all Pop3 servers. * @see org.jpxx.mail.Service.Server#start() */ public void start() { SysConfig sc = new SysConfig(); int ports[] = sc.getPop3Port(); ArrayList list = new ArrayList(); for (int i = 0; i < ports.length; i++) { try { Pop3ServerHandler handler = new Pop3ServerHandler(ports[i]); handler.start(); list.add(handler.getServerSocket()); log.info("Pop3 server start at port: " + ports[i]); } catch (IOException e) { log.error("Pop3 server can't listen at port: " + ports[i]); } } service.addService("POP3_SERVICES", list); } /** * @see org.jpxx.mail.Service.Server#stop() */ public void stop() { ArrayList services = (ArrayList) service.getService().get("POP3_SERVICES"); if (services != null) { for (Iterator i = services.iterator(); i.hasNext();) { ServerSocket ss = (ServerSocket) i.next(); try { if (!ss.isClosed()) { ss.close(); log.error("Stop Pop3 Server: " + ss.getLocalPort()); } } catch (Exception e) { log.error("Close Pop3 Server Error!" + e.toString()); } } } clearServcice(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -