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

📄 localservermanager.java

📁 create the email in the server
💻 JAVA
字号:
package za.co.halo.SecureCommunications.gui.server;

import java.util.Vector;
import za.co.halo.SecureCommunications.POP3Server;
import za.co.halo.SecureCommunications.SMTPServer;
import za.co.halo.SecureCommunications.ServerAcknowledge;
import za.co.halo.SecureCommunications.ServerAdmin;
import za.co.halo.SecureCommunications.ServerGroupManager;
import za.co.halo.SecureCommunications.ServerManager;
import za.co.halo.SecureCommunications.WebServer;
import za.co.halo.SecureCommunications.cluster.ClusterClient;
import za.co.halo.SecureCommunications.cluster.ClusterServer;
import za.co.halo.SecureCommunications.network.ServerSettings;
import za.co.halo.SecureCommunications.network.proxy.HTTPProxy;
import za.co.halo.SecureCommunications.network.rmi.RMIServer;
import za.co.halo.SecureCommunications.scheduling.ServerSchedule;

public class LocalServerManager {

	//private String portNumber;
	private Vector<AbstractServer> servers;
	private Vector<Thread> threads;
	private ServerManager accounts;
    private ServerGroupManager groups;
    private ClusterServer clusterServer;
    private ServerSchedule scheduler;
    private WebServer webserver;
	private POP3Server pop;
	private SMTPServer smtp;
	private RMIServer rmi;
	private ServerSettings settings;
	private HTTPProxy proxyServer;
	
	public LocalServerManager(ServerManager accounts, ServerGroupManager groups, ServerSettings settings)
	{
		this.accounts = accounts;
		this.groups = groups;
		this.settings = settings;
		servers = new Vector<AbstractServer>(5);
		threads = new Vector<Thread>(5);
		createServers();
		//POP3Server pop3 = new;
		//pop3.setPort();
		//pop3.start();
		//servers.addElement(pop3);
	}
	
	public Vector<AbstractServer> getServers()
	{
		return servers;
	}
	
	private void createServers()
	{
		//Start webmail
		ServerAcknowledge ack = new ServerAcknowledge();
		ack.start();
		
		try {
			clusterServer = new ClusterServer(accounts,groups);
			clusterServer.start();
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("Clusterserver could not start");
			e.printStackTrace();
		}
		
		webserver = new WebServer(accounts);
		webserver.setPort(55555);
		webserver.setupAddressBooks();
		webserver.setServerName("ICAT Webserver");
		webserver.setDomainName(settings.getDomain());
		webserver.setSMTPserver("localhost");
		try {
			Thread webserverThread = new Thread() {
				public void run()
				{
					webserver.start();
				}
			};
			threads.addElement(webserverThread);
			servers.addElement(webserver);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		
		proxyServer = new HTTPProxy();
		proxyServer.setPort(1080);
		//proxyServer.setupAddressBooks();
		proxyServer.setServerName("ICAT Proxy Server");
		//proxyServer.setDomainName(settings.getDomain());
		//proxyServer.setSMTPserver("localhost");
		try {
			Thread proxyThread = new Thread() {
				public void run()
				{
					proxyServer.start();
				}
			};
			threads.addElement(proxyThread);
			servers.addElement(proxyServer);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	
    	// Start pop3 server
    	pop = new POP3Server(accounts);
    	pop.setPort(110);
    	pop.setServerName("ICAT POP3 server");
		try {
	    	Thread pop3 = new Thread() {
	    		public void run()
	    		{
			    	pop.start();
	    		}
	    	};
	    	threads.addElement(pop3);
	    	servers.addElement(pop);
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("POPServer could not start");
			e.printStackTrace();
		}
    	
    	// Start smtp server
		try{
		smtp = new SMTPServer(accounts);
		smtp.setServerName("ICAT SMTP Server");
        smtp.setDomainName(settings.getDomain());
        smtp.setPort(25);
    	Thread s = new Thread() {
    		public void run()
    		{
    			smtp.start();
               
    		}
    	};
    	threads.addElement(s);
    	servers.addElement(smtp);
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("SMTP could not start");
			e.printStackTrace();
		}

		// Start rmi server
		rmi = new RMIServer(accounts);
		rmi.setServerName("ICAT RMI Server");
		rmi.setPort(1099);
    	Thread r = new Thread() {
    		public void run()
    		{
				rmi.start();
    		}
    	};
    	threads.addElement(r);
    	servers.addElement(rmi);
/*		try {
			rmi = new RMIServer(accounts);
			rmi.setServerName("ICAT RMI Server");
			rmi.setPort(1099);
			rmi.start();
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("RMIServer could not start");
			e.printStackTrace();
		}*/
		
	}
	
	public void startServers()
    {
    	
    	System.out.println("Starting servers");
		
		//Server Acknowledge
		//ServerAcknowledge ack = new ServerAcknowledge();
		//ack.start();

		//Start cluster server
		/*try {
		clusterServer = new ClusterServer(accounts,groups);
		clusterServer.start();
		}
		catch (Exception e)
		{
			ServerAdmin.error.warning("Clusterserver could not start");
			e.printStackTrace();
		}*/
		
		//Start scheduler
		scheduler = new ServerSchedule();
		
		//Start Cluster client
		scheduler.schedule(new ClusterClient(accounts),60,120);
		
		//start rmi, smtp, pop and webserver
		for (Thread t:threads)
			t.start();
		
    	System.out.println("Started servers");
    }
	
}

⌨️ 快捷键说明

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