Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.net.*;
- import java.io.*;
- public class HandlerPermanent extends Thread {
- BufferedReader inBuffer;
- PrintWriter outWriter;
- Socket clientSocket;
- int lfdnr;
- public HandlerPermanent(Socket clientSocket, int lfdnr) {
- this.clientSocket = clientSocket;
- this.lfdnr = lfdnr;
- }
- public void run() {
- try // ist nötig, weil abArbeiten eine Ex wirft
- {
- this.abArbeiten();
- } catch (Exception e) {
- System.out.println("Fehler beim Starten des Handlers : " + e.getMessage());
- }
- }
- public void abArbeiten() throws Exception {
- // oder ab hier try catch falls kein throws Exception
- inBuffer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
- // 1. Bytes 2. Chars 3. gepufferte Chars (später Zeilen)
- outWriter = new PrintWriter(clientSocket.getOutputStream());
- StringBuffer ergebnisStr = new StringBuffer();
- boolean weiter = true;
- while (weiter) {
- String nachricht = inBuffer.readLine();
- System.out.println("Clientanforderung von Client " + lfdnr + " eingetroffen: " + nachricht);
- if (!nachricht.equalsIgnoreCase("exit")) {
- try {
- int zahl = Integer.parseInt(nachricht);
- // Beschäftigungstherapie, die Zeit kostet,
- // um Parallelität zu zeigen
- for (int i = 1; i <= 10; i++) {
- int erg = zahl * i;
- ergebnisStr.append(" - " + erg);
- System.out.println("Handler " + lfdnr + " : Durchlauf: " + i + ", urspr. Zahl: " + nachricht);
- try {
- Thread.sleep(1000);
- // wird durch Flag geweckt und wirft
- // InterruptedException
- } catch (InterruptedException ex) {
- // Flag wurde zurückgesetzt
- System.out.println("wurde beim Mittagsschlaf geweckt.");
- this.interrupt(); // Flag neu setzen.
- }
- if (this.interrupted()) {
- // prüfen ob unterbrochen. Flag wird geändert.
- // mit this.isInterrupted() würde das Flag nicht
- // geändert.
- // interrupted() ist static, darum ein Warning von
- // Eclipse. Aber egal...
- System.out.println("Wurde unterbrochen, aber denke nicht daran.");
- }
- }
- } catch (Exception ex) {
- ergebnisStr.append("will Zahlen haben ");
- }
- } else {
- System.out.println("Client mit Handler " + lfdnr + " will sich abmelden.");
- weiter = false;
- ergebnisStr.delete(0, ergebnisStr.length());
- ergebnisStr.append(".. und tschüüs");
- }
- System.out.println("Antwort wird verschickt von " + lfdnr);
- outWriter.println("Handlerergebnis: " + ergebnisStr.toString());
- outWriter.flush();
- ergebnisStr.delete(0, ergebnisStr.length());
- }
- clientSocket.close();
- System.out.println("Client " + lfdnr + " meldet sich ab ...");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement