import java.io.*;
import javax.comm.*;
import java.util.*;
public class PortSniffer SerialPortEventListener
{
static Enumeration ports;
static CommPortIdentifier pID;
InputStream inStream;
SerialPort serPort;
public PortSniffer() throws Exception
{
serPort = (SerialPort)pID.open("PortSniffer",2000);
inStream = serPort.getInputStream();
serPort.addEventListener(this);
serPort.notifyOnDataAvailable(true);
serPort.notifyOnBreakInterrupt(true);
serPort.notifyOnCarrierDetect(true);
serPort.notifyOnCTS(true);
serPort.notifyOnDataAvailable(true);
serPort.notifyOnDSR(true);
serPort.notifyOnFramingError(true);
serPort.notifyOnOutputEmpty(true);
serPort.notifyOnOverrunError(true);
serPort.notifyOnParityError(true);
serPort.notifyOnRingIndicator(true);
serPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
public void serialEvent(SerialPortEvent event)
{
switch(event.getEventType())
{
case SerialPortEvent.BI:
System.out.println("SerialPortEvent.BI occurred");
case SerialPortEvent.OE:
System.out.println("SerialPortEvent.OE occurred");
case SerialPortEvent.FE:
System.out.println("SerialPortEvent.FE occurred");
case SerialPortEvent.PE:
System.out.println("SerialPortEvent.PE occurred");
case SerialPortEvent.CD:
System.out.println("SerialPortEvent.CD occurred");
case SerialPortEvent.CTS:
System.out.println("SerialPortEvent.CTS occurred");
case SerialPortEvent.DSR:
System.out.println("SerialPortEvent.DSR occurred");
case SerialPortEvent.RI:
System.out.println("SerialPortEvent.RI occurred");
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
System.out.println("SerialPortEvent.OUTPUT_BUFFER_EMPTY occurred");
break;
case SerialPortEvent.DATA_AVAILABLE:
System.out.println("SerialPortEvent.DATA_AVAILABLE occurred");
byte[] readBuffer = new byte[20];
try
{
while (inStream.available() > 0)
{
int numBytes = inStream.read(readBuffer);
}
System.out.print(new String(readBuffer));
}catch (IOException ioe)
{
System.out.println("Exception " + ioe);
}
break;
}
}
public static void main(String[] args)throws Exception{
ports = CommPortIdentifier.getPortIdentifiers();
while(ports.hasMoreElements())
{
pID = (CommPortIdentifier)ports.nextElement();
System.out.println("Port " + pID.getName());
if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
if (pID.getName().equals("COM1"))
{
PortSniffer pSniffer = new PortSniffer();
System.out.println("COM1 found");
}
}
}
}
}