diff --git a/src/ChatProgramm/controller/Nachricht.java b/src/ChatProgramm/controller/Nachricht.java deleted file mode 100644 index 55590e4..0000000 --- a/src/ChatProgramm/controller/Nachricht.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template - */ - -package ChatProgramm.controller; - -/** - * - * @author ahren - */ -class Nachricht -{ - public Nachricht() - { - - } -} diff --git a/src/ChatProgramm/controller/ReceiveAdapter.java b/src/ChatProgramm/controller/ReceiveAdapter.java deleted file mode 100644 index 6d4d83a..0000000 --- a/src/ChatProgramm/controller/ReceiveAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template - */ - -package ChatProgramm.controller; - -import java.util.concurrent.Flow; -import java.util.concurrent.Flow.Subscriber; - -/** - * - * @author ahren - */ -public class ReceiveAdapter implements Subscriber -{ - public ReceiveAdapter() - { - - } - - @Override - public void onSubscribe(Flow.Subscription subscription) - { - } - - @Override - public void onNext(Nachricht item) - { - } - - @Override - public void onError(Throwable throwable) - { - } - - @Override - public void onComplete() - { - } -} diff --git a/src/ChatProgramm/model/Client.java b/src/ChatProgramm/model/Client.java index d46bbea..adfe3a0 100644 --- a/src/ChatProgramm/model/Client.java +++ b/src/ChatProgramm/model/Client.java @@ -11,6 +11,7 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; import java.net.ServerSocket; import java.net.Socket; import java.util.logging.*; @@ -33,6 +34,7 @@ public class Client extends Transmitter { public Client() throws IOException { connect(); + initIO(); // out.println("Hallo Du Server - ich bin ein Client"); // out.flush(); @@ -66,21 +68,15 @@ public class Client extends Transmitter { socket = new Socket(IP, PORT); lg.info("Client: Verbindung aufgebaut"); - lg.info("Client: initialisiere reader und writer"); - InputStream is = socket.getInputStream(); - OutputStream os = socket.getOutputStream(); - - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); - OutputStreamWriter osr = new OutputStreamWriter(os, "UTF-8"); - - reader = new BufferedReader(isr); - writer = new PrintWriter(osr); - lg.info("Client: Initialisierung abgeschlossen"); - - lg.info("Client: warte auf Nachricht"); - } catch (java.io.InterruptedIOException e) { lg.warning("Timeout" + "(" + timeout / 1000 + "s)"); } } + + + + @Override + public void onNext(Nachricht item) { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } } diff --git a/src/ChatProgramm/model/Nachricht.java b/src/ChatProgramm/model/Nachricht.java new file mode 100644 index 0000000..66c3325 --- /dev/null +++ b/src/ChatProgramm/model/Nachricht.java @@ -0,0 +1,39 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ + +package ChatProgramm.model; + +/** + * + * @author ahren + */ +class Nachricht +{ + private String nachricht; + //private int id; + + public Nachricht(String nachricht) + { + this.nachricht = nachricht; + //this.id = id; + + } + + + + /** + * @return the id + */ +// public int getId() { +// return id; +// } + + /** + * @return the nachricht + */ + public String getNachricht() { + return nachricht; + } +} diff --git a/src/ChatProgramm/model/ReceiveAdapter.java b/src/ChatProgramm/model/ReceiveAdapter.java new file mode 100644 index 0000000..c24bf6f --- /dev/null +++ b/src/ChatProgramm/model/ReceiveAdapter.java @@ -0,0 +1,43 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package ChatProgramm.model; + +import ChatProgramm.view.ChatView; +import java.util.concurrent.Flow; +import java.util.concurrent.Flow.Subscriber; + +/** + * + * @author ahren + */ +public class ReceiveAdapter implements Subscriber { + + private ChatView view; + private Flow.Subscription subscription; + + public ReceiveAdapter(ChatView view) { + this.view = view; + } + + @Override + public void onSubscribe(Flow.Subscription subscription) { + this.subscription = subscription; + this.subscription.request(1); + } + + @Override + public void onNext(Nachricht item) { + view.getTxtChat().setText(item.getNachricht()); + this.subscription.request(1); + } + + @Override + public void onError(Throwable throwable) { + } + + @Override + public void onComplete() { + } +} diff --git a/src/ChatProgramm/model/Server.java b/src/ChatProgramm/model/Server.java index e279793..4c81be5 100644 --- a/src/ChatProgramm/model/Server.java +++ b/src/ChatProgramm/model/Server.java @@ -2,7 +2,6 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template */ - package ChatProgramm.model; import ChatProgramm.model.Transmitter; @@ -13,58 +12,44 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; import java.net.ServerSocket; import java.net.Socket; +import java.util.ArrayList; +import java.util.concurrent.Flow; +import java.util.concurrent.SubmissionPublisher; import java.util.logging.*; /** * Builder Class + * * @author le */ -public class Server extends Transmitter -{ - private static Logger lg = Logger.getLogger("netz"); - - private Socket socket; - private BufferedReader reader; - private PrintWriter writer; - - private static final int PORT = 35000; //lt. iana port > 2¹⁵ - - public void connect() throws IOException - { - try - { - ServerSocket sSocket = new ServerSocket(PORT); - sSocket.setSoTimeout(timeout); - lg.info("Server: warte auf Verbindung"); - socket = sSocket.accept(); - lg.info("Server: Verbindung akzeptiert"); - - lg.info("Server: initialisiere reader und writer"); - InputStream is = socket.getInputStream(); - OutputStream os = socket.getOutputStream(); - - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); - OutputStreamWriter osr = new OutputStreamWriter(os, "UTF-8"); - - reader = new BufferedReader(isr); - writer = new PrintWriter(osr); - lg.info("Server: Initialisierung abgeschlossen"); - - lg.info("Server: warte auf Nachricht"); - - } - catch ( java.io.InterruptedIOException e ) - { - lg.warning("Timeout"+"("+timeout/1000+"s)"); - } - - } - public Server() throws IOException - { - connect(); - +public class Server extends Transmitter { + + private static Logger lg = Logger.getLogger("netz"); + + + public void connect() throws IOException { + try { + ServerSocket sSocket = new ServerSocket(PORT); + sSocket.setSoTimeout(timeout); + lg.info("Server: warte auf Verbindung"); + socket = sSocket.accept(); + lg.info("Server: Verbindung akzeptiert"); + + } catch (java.io.InterruptedIOException e) { + lg.warning("Timeout" + "(" + timeout / 1000 + "s)"); + } + + } + + + + public Server() throws IOException { + connect(); + initIO(); + // String nachricht = in.readLine(); // ACHTUNG blockiert // lg.info("Server: Nachricht erhalten"); // System.out.println("Server: NACHRICHT = " + nachricht); @@ -77,20 +62,19 @@ public class Server extends Transmitter // in.close(); // out.close(); // s.close(); - } + } - /** - * @param args the command line arguments - */ - public static void main(String[] args) - { - try - { - new Server(); + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + try { + new Server(); + } catch (IOException ex) { + Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex); + } } - catch (IOException ex) - { - Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex); - } - } + + + } diff --git a/src/ChatProgramm/model/Transmitter.java b/src/ChatProgramm/model/Transmitter.java index 15b09b3..492966c 100644 --- a/src/ChatProgramm/model/Transmitter.java +++ b/src/ChatProgramm/model/Transmitter.java @@ -16,6 +16,7 @@ import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Flow; import java.util.concurrent.Flow.Subscriber; +import java.util.concurrent.SubmissionPublisher; import java.util.logging.Level; import java.util.logging.Logger; @@ -23,16 +24,19 @@ import java.util.logging.Logger; * * @author ahren */ -public abstract class Transmitter implements Runnable, Subscriber { +public abstract class Transmitter implements Runnable, Subscriber { static final int timeout = 60000; - private static final int PORT = 35000; + protected static final int PORT = 35000; + protected static final String IP = "127.0.0.1"; private static Logger lg = Logger.getLogger("netz"); - private Socket socket; - private BufferedReader reader; - private PrintWriter writer; + protected Socket socket; + protected BufferedReader reader; + protected PrintWriter writer; + + private SubmissionPublisher textPublisher; public Transmitter() { @@ -51,9 +55,9 @@ public abstract class Transmitter implements Runnable, Subscriber { reader = new BufferedReader(isr); writer = new PrintWriter(osr); - lg.info("Server: Initialisierung abgeschlossen"); + lg.info("Initialisierung abgeschlossen"); - lg.info("Server: warte auf Nachricht"); + lg.info("Warte auf Nachricht"); } catch (UnsupportedEncodingException ex) { Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex); @@ -62,6 +66,10 @@ public abstract class Transmitter implements Runnable, Subscriber { } } + public void addWertSubscription(Subscriber subscriber) { + textPublisher.subscribe(subscriber); + } + @Override public void run() { } @@ -70,11 +78,7 @@ public abstract class Transmitter implements Runnable, Subscriber { public void onSubscribe(Flow.Subscription subscription) { throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody } - - @Override - public void onNext(String item) { - throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody - } + @Override public void onError(Throwable throwable) { @@ -86,4 +90,9 @@ public abstract class Transmitter implements Runnable, Subscriber { throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody } + @Override + public void onNext(Nachricht item) { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + }