From 83ddb0247730de67093e6ff189e56d9c1c610c61 Mon Sep 17 00:00:00 2001 From: schuhmannje82308 Date: Tue, 12 Dec 2023 11:22:16 +0100 Subject: [PATCH] Client umgebaut --- src/ChatProgramm/Client.java | 79 ----------------- src/ChatProgramm/Start.java | 5 +- .../controller/CommandController.java | 11 ++- .../controller/commands/CommandConnect.java | 4 +- src/ChatProgramm/model/Client.java | 86 +++++++++++++++++++ src/ChatProgramm/{ => model}/Server.java | 8 +- src/ChatProgramm/model/Transmitter.java | 28 +++--- 7 files changed, 121 insertions(+), 100 deletions(-) delete mode 100644 src/ChatProgramm/Client.java create mode 100644 src/ChatProgramm/model/Client.java rename src/ChatProgramm/{ => model}/Server.java (95%) diff --git a/src/ChatProgramm/Client.java b/src/ChatProgramm/Client.java deleted file mode 100644 index 8924c80..0000000 --- a/src/ChatProgramm/Client.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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; - -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.Socket; -import java.util.logging.*; - -/** - * Builder Class - * @author le - */ -public class Client -{ - private static Logger lg = Logger.getLogger("netz"); - private static final int PORT = 35000; //lt. iana port > 2¹⁵ - private static final String IP = "127.0.0.1"; - - - public Client() throws IOException - { - lg.info("Client: versuche zu verbinden"); - Socket s = new Socket(IP, PORT); // ACHTUNG blockiert! - lg.info("Client: Verbindung akzeptiert"); - - InputStream is = s.getInputStream(); - OutputStream os = s.getOutputStream(); - - //Umwandlung der Byteströme - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); - OutputStreamWriter osr = new OutputStreamWriter(os, "UTF-8"); - - //Puffer - BufferedReader in = new BufferedReader(isr); - //BufferedWriter out = new BufferedWriter(osr); - //besser - PrintWriter out = new PrintWriter(osr); - - lg.info("Client: Streams erfolgreich initialisiert"); - lg.info("Client: sende Textnachricht"); - - out.println("Hallo Du Server - ich bin ein Client"); - out.flush(); - - lg.info("Client: warte auf Serverantwort"); - - String nachricht = in.readLine(); // ACHTUNG blockiert - lg.info("Client: Serverbestätigung erhalten"); - - lg.info("Client: fertig"); - in.close(); - out.close(); - s.close(); - } - - /** - * @param args the command line arguments - */ - public static void main(String[] args) - { - try - { - new Client(); - } - catch (IOException ex) - { - Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex); - } - } -} diff --git a/src/ChatProgramm/Start.java b/src/ChatProgramm/Start.java index 92d759b..a048b37 100644 --- a/src/ChatProgramm/Start.java +++ b/src/ChatProgramm/Start.java @@ -19,9 +19,10 @@ public class Start { public Start() { - Transmitter transmitter = new Transmitter(); + //Transmitter transmitter = new Transmitter(); ChatView view = new ChatView(); - CommandController controller_commands = new CommandController(view, transmitter); + //CommandController controller_commands = new CommandController(view, transmitter); + CommandController controller_commands = new CommandController(view); controller_commands.registerEvents(); controller_commands.registerCommands(); view.setVisible(true); diff --git a/src/ChatProgramm/controller/CommandController.java b/src/ChatProgramm/controller/CommandController.java index 27c61bf..c19002c 100644 --- a/src/ChatProgramm/controller/CommandController.java +++ b/src/ChatProgramm/controller/CommandController.java @@ -21,12 +21,17 @@ import java.awt.event.ActionListener; public class CommandController implements ActionListener{ private ChatView view; - private Transmitter transmitter; + //private Transmitter transmitter; private CommandInvoker invoker; - public CommandController(ChatView view, Transmitter transmitter){ +// public CommandController(ChatView view, Transmitter transmitter){ +// this.view = view; +// this.transmitter = transmitter; +// this.invoker = new CommandInvoker(); +// } + + public CommandController(ChatView view){ this.view = view; - this.transmitter = transmitter; this.invoker = new CommandInvoker(); } diff --git a/src/ChatProgramm/controller/commands/CommandConnect.java b/src/ChatProgramm/controller/commands/CommandConnect.java index 58b01bb..1bb6e12 100644 --- a/src/ChatProgramm/controller/commands/CommandConnect.java +++ b/src/ChatProgramm/controller/commands/CommandConnect.java @@ -5,8 +5,8 @@ package ChatProgramm.controller.commands; -import ChatProgramm.Client; -import ChatProgramm.Server; +import ChatProgramm.model.Client; +import ChatProgramm.model.Server; import ChatProgramm.util.OhmLogger; import ChatProgramm.view.ChatView; import java.io.IOException; diff --git a/src/ChatProgramm/model/Client.java b/src/ChatProgramm/model/Client.java new file mode 100644 index 0000000..d46bbea --- /dev/null +++ b/src/ChatProgramm/model/Client.java @@ -0,0 +1,86 @@ +/* + * 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 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.logging.*; + +/** + * Builder Class + * + * @author le + */ +public class Client 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¹⁵ + private static final String IP = "127.0.0.1"; + + public Client() throws IOException { + connect(); + +// out.println("Hallo Du Server - ich bin ein Client"); +// out.flush(); +// +// lg.info("Client: warte auf Serverantwort"); +// +// String nachricht = in.readLine(); // ACHTUNG blockiert +// lg.info("Client: Serverbestätigung erhalten"); +// +// lg.info("Client: fertig"); +// in.close(); +// out.close(); +// s.close(); + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + try { + new Client(); + } catch (IOException ex) { + Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex); + } + } + + @Override + public void connect() throws IOException { + try { + lg.info("Client: Verbindung wird aufgebaut"); + 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)"); + } + } +} diff --git a/src/ChatProgramm/Server.java b/src/ChatProgramm/model/Server.java similarity index 95% rename from src/ChatProgramm/Server.java rename to src/ChatProgramm/model/Server.java index 54dc32a..e279793 100644 --- a/src/ChatProgramm/Server.java +++ b/src/ChatProgramm/model/Server.java @@ -3,8 +3,9 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template */ -package ChatProgramm; +package ChatProgramm.model; +import ChatProgramm.model.Transmitter; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -20,14 +21,15 @@ import java.util.logging.*; * Builder Class * @author le */ -public class Server +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¹⁵ - private static int timeout = 10000; public void connect() throws IOException { diff --git a/src/ChatProgramm/model/Transmitter.java b/src/ChatProgramm/model/Transmitter.java index 497265a..f3ff23e 100644 --- a/src/ChatProgramm/model/Transmitter.java +++ b/src/ChatProgramm/model/Transmitter.java @@ -2,22 +2,28 @@ * 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 java.io.IOException; +import java.util.concurrent.Flow; +import java.util.concurrent.Flow.Subscriber; + /** * * @author ahren */ -public class Transmitter implements Runnable -{ - public Transmitter() - { - - } +public abstract class Transmitter implements Runnable{ + static final int timeout = 10000; + + public Transmitter() { + + } + + public abstract void connect() throws IOException; + + @Override + public void run() { + } + - @Override - public void run() - { - } }