package de.tuchemnitz.informatik.TOPES07.Sensoren; import java.io.*; import java.net.*; //import de.tuchemnitz.informatik.TOPES07.datenmanager.events.SensorEvent; /** * Erstellen eines Sockets und Warten auf neue Verbidungen die dann in einem * neuen Thread abgearbeitet werden. * * @author Karsten Knuth */ public class SensorServer implements Runnable { Thread listener; ServerSocket server; /** * Starten den Programms * * @param args Komandozeilen Parameter */ public static void main(String args[]) { new SensorServer(); } /** * Aufbauen des Sockets und Starten des Threads */ public SensorServer () { try { server = new ServerSocket(6389); listener = new Thread(this); listener.start(); } catch(Exception e) { e.printStackTrace(); } } /** * Ausfürhen des Threads: * Warten auf neue Verbindungen und Abarbeiten dieser in einem neuen Thread */ public void run() { try { while(true) { Socket client = server.accept(); new SensorClient(client).start(); } } catch(Exception e) { e.printStackTrace(); } } } /** * Warten an einem instanziierten Socket, Empfang der Daten und Weiterleiten * der Daten an die entsprechenden Methoden. * * @author Karsten Knuth */ class SensorClient extends Thread { Socket s; DataInputStream in = null; /** * Initialisieren des SensorClient * * @param s Socket an dem Empfangen werden soll * @throws IOException Thows IOException wenn fehlerhafte Kommunikation am Socket vorliegt */ public SensorClient(Socket s) throws IOException { in = new DataInputStream(s.getInputStream()); } /** * Auslesen der Daten am Socket, Auswerten und Zuordnen zu den einzelnen * Messagetypen */ public void run(){ try { // SensorEvent event = new SensorEvent(); String message, messageid; while(true){ message = in.readLine(); messageid = message.substring(0,1); // event.SensorKnotenID = Integer.valueOf(message.substring(2,3)) + 10 * Integer.valueOf(message.substring(1,2)); if(messageid.equals("0")){ System.out.print("Lichtschranke bei Sensor " + message.substring(1,3) + " wurde unterbrochen"); } else if(messageid.equals("1")){ System.out.print("Lichtschranke bei Sensor " + message.substring(1,3) + " wurde aufgebaut"); } else if(messageid.equals("H")){ System.out.print("Lichtschranke bei Sensor " + message.substring(1,3) + " wurde eingeschaltet"); } else if(messageid.equals("A")){ System.out.print("Beschleunigung bei Sensor " + message.substring(1,3) + " wurde festgestellt"); } } } catch(IOException e) { try{ in.close(); } catch(Exception e1){} this.stop(); } } }