Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.70 KB | None | 0 0
  1. import java.net.*;
  2. import java.io.*;
  3.  
  4. public class HandlerPermanent extends Thread {
  5.     BufferedReader inBuffer;
  6.  
  7.     PrintWriter outWriter;
  8.  
  9.     Socket clientSocket;
  10.  
  11.     int lfdnr;
  12.  
  13.     public HandlerPermanent(Socket clientSocket, int lfdnr) {
  14.         this.clientSocket = clientSocket;
  15.         this.lfdnr = lfdnr;
  16.     }
  17.  
  18.     public void run() {
  19.         try // ist nötig, weil abArbeiten eine Ex wirft
  20.         {
  21.             this.abArbeiten();
  22.         } catch (Exception e) {
  23.             System.out.println("Fehler beim Starten des Handlers : " + e.getMessage());
  24.         }
  25.     }
  26.  
  27.     public void abArbeiten() throws Exception {
  28.         // oder ab hier try catch falls kein throws Exception
  29.         inBuffer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  30.         // 1. Bytes 2. Chars 3. gepufferte Chars (später Zeilen)
  31.         outWriter = new PrintWriter(clientSocket.getOutputStream());
  32.         StringBuffer ergebnisStr = new StringBuffer();
  33.  
  34.         boolean weiter = true;
  35.         while (weiter) {
  36.             String nachricht = inBuffer.readLine();
  37.             System.out.println("Clientanforderung von Client " + lfdnr + " eingetroffen: " + nachricht);
  38.             if (!nachricht.equalsIgnoreCase("exit")) {
  39.                 try {
  40.                     int zahl = Integer.parseInt(nachricht);
  41.                     // Beschäftigungstherapie, die Zeit kostet,
  42.                     // um Parallelität zu zeigen
  43.                     for (int i = 1; i <= 10; i++) {
  44.                         int erg = zahl * i;
  45.                         ergebnisStr.append(" - " + erg);
  46.                         System.out.println("Handler " + lfdnr + " : Durchlauf: " + i + ", urspr. Zahl: " + nachricht);
  47.                         try {
  48.                             Thread.sleep(1000);
  49.                             // wird durch Flag geweckt und wirft
  50.                             // InterruptedException
  51.                         } catch (InterruptedException ex) {
  52.                             // Flag wurde zurückgesetzt
  53.                             System.out.println("wurde beim Mittagsschlaf geweckt.");
  54.                             this.interrupt(); // Flag neu setzen.
  55.                         }
  56.                         if (this.interrupted()) {
  57.                             // prüfen ob unterbrochen. Flag wird geändert.
  58.                             // mit this.isInterrupted() würde das Flag nicht
  59.                             // geändert.
  60.                             // interrupted() ist static, darum ein Warning von
  61.                             // Eclipse. Aber egal...
  62.                             System.out.println("Wurde unterbrochen, aber denke nicht daran.");
  63.                         }
  64.                     }
  65.  
  66.                 } catch (Exception ex) {
  67.                     ergebnisStr.append("will Zahlen haben ");
  68.                 }
  69.  
  70.             } else {
  71.                 System.out.println("Client mit Handler " + lfdnr + " will sich abmelden.");
  72.                 weiter = false;
  73.                 ergebnisStr.delete(0, ergebnisStr.length());
  74.                 ergebnisStr.append(".. und tschüüs");
  75.             }
  76.             System.out.println("Antwort wird verschickt von " + lfdnr);
  77.             outWriter.println("Handlerergebnis: " + ergebnisStr.toString());
  78.             outWriter.flush();
  79.             ergebnisStr.delete(0, ergebnisStr.length());
  80.         }
  81.         clientSocket.close();
  82.         System.out.println("Client " + lfdnr + " meldet sich ab ...");
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement