@@ -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); | |||
} | |||
} | |||
} |
@@ -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); |
@@ -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(); | |||
} | |||
@@ -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; |
@@ -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)"); | |||
} | |||
} | |||
} |
@@ -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 | |||
{ |
@@ -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() | |||
{ | |||
} | |||
@Override | |||
public void run() | |||
{ | |||
} | |||
public abstract class Transmitter implements Runnable{ | |||
static final int timeout = 10000; | |||
public Transmitter() { | |||
} | |||
public abstract void connect() throws IOException; | |||
@Override | |||
public void run() { | |||
} | |||
} |