package org.infosec.ismp.manager.winsensor.event; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import org.infosec.ismp.util.ThreadCategory; /** * @author guoxianwei * @date 2011-3-9 上午10:42:09 * */ public class EventSender { /** * Event send UDP port. */ private int m_port; /** * Event send destination Address. */ private String m_inetAddress; private DatagramSocket m_dataSocket; private DatagramPacket m_dataPacket; public EventSender() { } public void SendInfo(byte[] dataBytes) throws IOException { m_dataSocket = new DatagramSocket(); m_dataPacket = new DatagramPacket(dataBytes, dataBytes.length, InetAddress.getByName(m_inetAddress), m_port); m_dataSocket.send(m_dataPacket); } public void send(Object obj) { ThreadCategory log = ThreadCategory.getInstance(getClass()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(baos); oos.writeObject(obj); oos.flush(); byte arr[] = baos.toByteArray(); if (arr == null) return; SendInfo(arr); if (baos != null) baos.close(); if (oos != null) oos.close(); } catch (Exception e) { log.debug("Exception in Sending data to server.", e); } } public int getPort() { return m_port; } public String getInetAddress() { return m_inetAddress; } public void setPort(int port) { m_port = port; } public void setInetAddress(String inetAddress) { m_inetAddress = inetAddress; } }