package netzprog02_j_ultimatefinal;

import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Daniel Leese
 */
public class MainClient {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Socket sock = null;
        ObjectOutputStream oos = null;
        ObjectInputStream ois = null;
        int clientID = 0;

        try {
            sock = new Socket(args[0], 1234);
            oos = new ObjectOutputStream(sock.getOutputStream());
            ois = new ObjectInputStream(sock.getInputStream());
            try {
                clientID = (Integer) ois.readObject(); // bekommt von gateway eine id zugewiesen
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(MainClient.class.getName()).log(Level.SEVERE, null, ex);
            }

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String eingabe = new String("");

            while (eingabe.compareTo("Q") != 0) {
                eingabe = "";
                System.out.println();
                System.out.println("ClientID: " + clientID);
                System.out.println("N\tfuer neuen job");
                System.out.println("Q\tBeendet das Programm");
                eingabe = br.readLine();

                if (eingabe.equalsIgnoreCase("N")) {
                    String start = new String("");
                    String end = new String("");
                    System.out.println("Startwert eingeben:");
                    start = br.readLine();
                    System.out.println("Endwert eingeben:");
                    end = br.readLine();
                    SumUpJob job = new SumUpJob();
                    job.initJob(Integer.valueOf(start), Integer.valueOf(end), clientID);
                    oos.writeObject(job);
                }
            }
        } catch (UnknownHostException ex) {
            Logger.getLogger(MainClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(MainClient.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}