Client umgebaut

This commit is contained in:
Jens Schuhmann 2023-12-12 11:22:16 +01:00
parent 8a7019bfca
commit 83ddb02477
7 changed files with 121 additions and 100 deletions

View File

@ -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);
}
}
}

View File

@ -19,9 +19,10 @@ public class Start
{ {
public Start() public Start()
{ {
Transmitter transmitter = new Transmitter(); //Transmitter transmitter = new Transmitter();
ChatView view = new ChatView(); 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.registerEvents();
controller_commands.registerCommands(); controller_commands.registerCommands();
view.setVisible(true); view.setVisible(true);

View File

@ -21,12 +21,17 @@ import java.awt.event.ActionListener;
public class CommandController implements ActionListener{ public class CommandController implements ActionListener{
private ChatView view; private ChatView view;
private Transmitter transmitter; //private Transmitter transmitter;
private CommandInvoker invoker; 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.view = view;
this.transmitter = transmitter;
this.invoker = new CommandInvoker(); this.invoker = new CommandInvoker();
} }

View File

@ -5,8 +5,8 @@
package ChatProgramm.controller.commands; package ChatProgramm.controller.commands;
import ChatProgramm.Client; import ChatProgramm.model.Client;
import ChatProgramm.Server; import ChatProgramm.model.Server;
import ChatProgramm.util.OhmLogger; import ChatProgramm.util.OhmLogger;
import ChatProgramm.view.ChatView; import ChatProgramm.view.ChatView;
import java.io.IOException; import java.io.IOException;

View File

@ -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)");
}
}
}

View File

@ -3,8 +3,9 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template * 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.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -20,14 +21,15 @@ import java.util.logging.*;
* Builder Class * Builder Class
* @author le * @author le
*/ */
public class Server public class Server extends Transmitter
{ {
private static Logger lg = Logger.getLogger("netz"); private static Logger lg = Logger.getLogger("netz");
private Socket socket; private Socket socket;
private BufferedReader reader; private BufferedReader reader;
private PrintWriter writer; private PrintWriter writer;
private static final int PORT = 35000; //lt. iana port > 2¹ private static final int PORT = 35000; //lt. iana port > 2¹
private static int timeout = 10000;
public void connect() throws IOException public void connect() throws IOException
{ {

View File

@ -2,22 +2,28 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package ChatProgramm.model; package ChatProgramm.model;
import java.io.IOException;
import java.util.concurrent.Flow;
import java.util.concurrent.Flow.Subscriber;
/** /**
* *
* @author ahren * @author ahren
*/ */
public class Transmitter implements Runnable public abstract class Transmitter implements Runnable{
{ static final int timeout = 10000;
public Transmitter()
{ public Transmitter() {
} }
public abstract void connect() throws IOException;
@Override @Override
public void run() public void run() {
{
} }
} }