如何开启对某一个端口的监听

MessageReceiverListenersStartup.java

@Service
public class MessageReceiverListenersStartup extends ServerStartBase {
	@Override
	public void start() {
		ReceiverListenerInter listener = ApplicationContextFactory.getBean(beanName, ReceiverListenerInter.class);
		listener.startup();
	}
}

ReceiverListenerInter.java

@***ServiceExport
public interface ReceiverListenerInter {
	
	/**
	 * 启动监听服务
	 * 
	 * @return
	 */
	public boolean startup();
}

SyslogReceiverLinstener.java

@Service("syslogReceiverLinstener")
public class SyslogReceiverLinstener implements ReceiverListenerInter {
	private static final String SYSLOG_LISTEN_THREAD_NAME = "SyslogListenThread";

	@Override
	public boolean startup() {
		Thread syslogListenThread = new Thread(new SyslogListener());
		syslogListenThread.setName(SYSLOG_LISTEN_THREAD_NAME);
		syslogListenThread.start();
	}
	
	private class SyslogListener implements Runnable{
		
		public void run() {
			SyslogServerIF localSyslogServerIF = SyslogServer
					.getInstance(SyslogConfiguration.protocol);
			SyslogServerConfigIF localSyslogServerConfigIF = localSyslogServerIF.getConfig();
			localSyslogServerConfigIF.setHost("0.0.0.0");
			localSyslogServerConfigIF.setPort(SyslogConfiguration.port);
			SyslogServerEventHandlerIF eventHandler = new SelfSyslogServerEventHandler();
			localSyslogServerConfigIF.addEventHandler((SyslogServerEventHandlerIF) eventHandler);
			localSyslogServerIF.initialize(SyslogConfiguration.protocol, localSyslogServerConfigIF);
			//run方法开启了514端口的监听
			localSyslogServerIF.run();
		}
	}
}

如果打开两个eclipse,相同的代码。这样只有先运行的那个可以监听成功

你可能感兴趣的:(常用代码,监听,syslog)