package org.infosec; import java.net.DatagramPacket; import java.net.DatagramSocket; import org.infosec.ismp.model.Syslog; import org.infosec.ismp.model.syslog.SyslogParser; public class SyslogTest { private String m_parserClassName; private int m_port; private SyslogParser m_parser; public void start() throws Exception { DatagramSocket socket = new DatagramSocket(514); while (true) { byte[] buff = new byte[0xff]; DatagramPacket pkt = new DatagramPacket(buff, 0, buff.length); socket.receive(pkt); if (m_parser == null) { try { Class clz = Class.forName(m_parserClassName); m_parser = (SyslogParser) clz.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } if (m_parser != null) { byte[] data = pkt.getData(); boolean flag = m_parser.isRightSyslog(data, data.length); if (flag) { Syslog syslog = m_parser.parseSyslog(data, data.length); } } } } public void setParserClassName(String parserClassName) { m_parserClassName = parserClassName; } public void setPort(int port) { m_port = port; } }