All pastes #581008 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-21 10:15 UTC
rendered paste body
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();
    }    
  }
}