/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package netzprog02_j_ultimatefinal; import java.net.*; import java.util.logging.Level; import java.util.logging.Logger; import java.io.*; /** * * @author Daniel Leese */ public class ServerWorker extends Thread implements Runnable { private Socket sock = null; private ObjectOutputStream oos = null; private ObjectInputStream ois = null; private BufferedWriter bwriter = null; private int vergebeneWorkerID; public ServerWorker(Socket socket) { sock = socket; this.start(); } @Override public void run() { List list = List.getInstnce(); boolean bool = true; try { oos = new ObjectOutputStream(sock.getOutputStream()); ois = new ObjectInputStream(sock.getInputStream()); bwriter = new BufferedWriter(new FileWriter("ergebnisse.txt", true)); bwriter.write("ClientID\tWorkerID\tErgebins\n\n"); vergebeneWorkerID = list.getNextWorkerID(); oos.writeObject(vergebeneWorkerID); System.out.println("Worker " + vergebeneWorkerID + ": Verbunden :)"); SumUpJob tmpJob = null; Object recv = new Object(); while (bool) { recv = ois.readObject(); if (recv instanceof String) { String recvStr = new String((String) recv); if (recvStr.equals("CLOSE")) { bool = false; } else { if (recvStr.equals("getJob")) { while (true) {// wird mit break abgebrochen Thread.sleep(1000); if (list.isJobListEmty() == false) { SumUpJob job = (SumUpJob) list.getNextObject(); oos.writeObject(job); System.out.println("sende Job " + job.getId() + " an Worker " + vergebeneWorkerID); recv = ois.readObject(); tmpJob = (SumUpJob) recv; System.out.println("bekahm Job " + tmpJob.getId() + " von Worker " + tmpJob.getWorkerID() + " Summe von " + tmpJob.getStart() + " bis " + tmpJob.getEnd() + " ist " + tmpJob.getErgebnis()); bwriter.write(tmpJob.getClientID() + "\t\t" + tmpJob.getWorkerID() + "\t\t" + tmpJob.getErgebnis() + "\n"); bwriter.flush(); break; } } } } } } // } catch (EOFException ex) { // System.out.println("Worker closed"); } catch (EOFException e) { System.out.println("worker " + vergebeneWorkerID + " EOFException"); } catch (ClassNotFoundException ex) { Logger.getLogger(ServerWorker.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException e) { System.err.println(e); } catch (InterruptedException ex) { Logger.getLogger(ServerWorker.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("tschuess"); } }