Browse Source

Client umgebaut

Jens
Jens Schuhmann 1 year ago
parent
commit
83ddb02477

+ 0
- 79
src/ChatProgramm/Client.java View File

/*
* 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);
}
}
}

+ 3
- 2
src/ChatProgramm/Start.java View File

{ {
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);

+ 8
- 3
src/ChatProgramm/controller/CommandController.java View File

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

+ 2
- 2
src/ChatProgramm/controller/commands/CommandConnect.java View File



package ChatProgramm.controller.commands; package ChatProgramm.controller.commands;


import ChatProgramm.Client;
import ChatProgramm.Server;
import ChatProgramm.model.Client;
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;

+ 86
- 0
src/ChatProgramm/model/Client.java View File

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

src/ChatProgramm/Server.java → src/ChatProgramm/model/Server.java View File

* 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;
* 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
{ {

+ 18
- 12
src/ChatProgramm/model/Transmitter.java View File

* 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 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() {
}


} }

Loading…
Cancel
Save