123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package model;
-
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.Observable;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import logger.OhmLogger;
-
- /**
- *
- * @author Apollo
- */
- public class Transmitter extends Observable implements Runnable
- {
- private static final Logger lg = OhmLogger.getLogger();
- private static final int PORT = 35000;
- private String IP_ADRESSE = "";
-
- int modus;
- private String nachricht;
- String message;
- OutputStream oStream;
- InputStream iStream;
- InputStreamReader isr;
- OutputStreamWriter osr;
- BufferedReader in;
- PrintWriter out;
- Socket s;
-
- public Transmitter(int modus)
- {
- this.modus = modus;
- nachricht = "";
- }
-
- @Override
- public void run()
- {
- if (modus == 0)
- {
- ServerSocket sSocket;
- try
- {
- sSocket = new ServerSocket(PORT);
- lg.info("Server: Warte auf Verbindung ...");
- nachricht = "Server: Warte auf Verbindung ...";
- setChanged();
- notifyObservers();
- s = sSocket.accept(); // Achtung: blockiert!
- nachricht = "Verbunden mit Client";
- setChanged();
- notifyObservers();
- lg.info("Server: Verbindung akzeptiert");
- }
- catch (IOException ex)
- {
- Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- else if (modus == 1)
- {
- nachricht = "Verbinden mit "+ IP_ADRESSE;
- setChanged();
- notifyObservers();
- lg.info("Client: verbinde ...");
- try
- {
- s = new Socket(IP_ADRESSE, PORT); // Achtung: blockiert!
- lg.info("Client: Verbindung hergestellt");
- }
- catch (IOException ex)
- {
- Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- try
- {
- iStream = s.getInputStream();
- oStream = s.getOutputStream();
-
- isr = new InputStreamReader(iStream, "UTF-8");
- osr = new OutputStreamWriter(oStream, "UTF-8");
-
- in = new BufferedReader(isr);
- //BufferedWriter out = new BufferedWriter(osr);
- out = new PrintWriter(osr);
- }
- catch (IOException ex)
- {
- Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
- }
- if (modus == 0)
- {
- lg.info("Server: Stream initialisiert");
- }
- else if (modus == 1)
- {
- lg.info("Client: Stream initialisiert");
- }
- while (true)
- {
- try
- {
- nachricht = in.readLine(); // Achtung blockiert
- }
- catch (IOException ex)
- {
- Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
- }
-
- setChanged();
- notifyObservers();
-
- lg.info("Server: Nachricht empfangen");
- out.flush(); // wirklich absenden!!
-
- if (nachricht.equals("beenden"))
- {
- break;
- }
- }
-
- try
- {
- in.close();
- out.close();
-
- }
- catch (IOException ex)
- {
- Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-
- public void send(String input)
- {
- out.println(input);
- out.flush(); // wirklich absenden!!
- }
- /**
- * @return the nachricht
- */
- public String getNachricht()
- {
- System.out.println("Server: NACHRICHT EMPFANGEN - " + nachricht);
- return nachricht;
- }
-
- /**
- * @param IP_ADRESSE the IP_ADRESSE to set
- */
- public void setIP_ADRESSE(String IP_ADRESSE)
- {
- this.IP_ADRESSE = IP_ADRESSE;
- }
-
- }
|