Skip to content
Snippets Groups Projects
Commit ad151110 authored by Philipp Lachowski's avatar Philipp Lachowski
Browse files

Ich checke nicht, warum der In und Output nicht funktioniert.

Vlt switche ich runter von Bufferedreadern und Writern
parent 288c6103
No related branches found
No related tags found
1 merge request!3Ich checke nicht, warum der In und Output nicht funktioniert.
...@@ -10,7 +10,8 @@ import java.text.*; ...@@ -10,7 +10,8 @@ import java.text.*;
public class Client { public class Client {
private BufferedWriter zumServer; private BufferedWriter zumServer;
private BufferedReader vomServer; private BufferedReader vomServer;
public Client() throws IOException{
public Client() throws IOException {
// Lokale Variablen (Nach Konstruktor nicht mehr nötig) // Lokale Variablen (Nach Konstruktor nicht mehr nötig)
String ip = ""; String ip = "";
...@@ -25,7 +26,7 @@ public class Client { ...@@ -25,7 +26,7 @@ public class Client {
String portFragezeichen = info.readLine(); // Port ist vorerst String String portFragezeichen = info.readLine(); // Port ist vorerst String
// Port muss vom String zum Int werden: // Port muss vom String zum Int werden:
try{ try {
port = Integer.parseInt(portFragezeichen); port = Integer.parseInt(portFragezeichen);
} catch (NumberFormatException e) { // Falls er keine Zahl ist } catch (NumberFormatException e) { // Falls er keine Zahl ist
System.err.println("Der Port ist keine Zahl!"); System.err.println("Der Port ist keine Zahl!");
...@@ -33,14 +34,13 @@ public class Client { ...@@ -33,14 +34,13 @@ public class Client {
} }
// Wenn falsche IP oder port eingegeben wird: // Wenn falsche IP oder port eingegeben wird:
if(!ip.equals("127.0.0.1")){ if (!ip.equals("127.0.0.1")) {
if(!ip.equals("localhost")) if (!ip.equals("localhost")) {
{
System.err.println("Falsche IP!"); System.err.println("Falsche IP!");
return; return;
} }
} }
if(port != 2022){ if (port != 2022) {
System.err.println("Falscher Port!"); System.err.println("Falscher Port!");
return; return;
} }
...@@ -63,77 +63,25 @@ public class Client { ...@@ -63,77 +63,25 @@ public class Client {
} }
// Eingaben werden aufgenommen und bearbeitet bis "close": // Eingaben werden aufgenommen und bearbeitet bis "close":
System.out.println("Verbindung hergestellt, erwarte Auftrag:"); System.out.println("Verbindung hergestellt. erwarte Auftrag:");
while(clientSocket.isConnected()) while (clientSocket.isConnected()) {
{
String eingabe = info.readLine(); String eingabe = info.readLine();
if(eingabe.equalsIgnoreCase("close")){ zumServer.write(eingabe); // Alles wird an den Server geschickt
String ausgabe = vomServer.readLine(); // Ausgabe vom Server wird verglichen
if (ausgabe.equals("EXIT")) {
clientSocket.close(); clientSocket.close();
info.close(); info.close();
break; } else if (ausgabe.equals("PONG")) {
} System.out.println(ausgabe);
else if(eingabe.equalsIgnoreCase("ping")){ } else if (ausgabe.substring(0, 4).equals("ECHO")) {
ping(); System.out.println(ausgabe.substring(5));
} } else if (ausgabe.substring(0, 4).equals("TIME")) {
else if(eingabe.substring(0,4).equalsIgnoreCase("echo")){ System.out.println(ausgabe.substring(5));
echo(eingabe); } else if (ausgabe.substring(0, 4).equals("DATE")) {
System.out.println(ausgabe.substring(5));
} else if (ausgabe.substring(0, 5).equals("ERROR")) {
System.out.println(ausgabe.substring(6));
} }
else if(eingabe.equalsIgnoreCase("current time")){
time();
}
else if(eingabe.equalsIgnoreCase("current date")){
date();
}
}
// "close" -> While schleife endet, constructor endet, client ist beendet
}
// Aufruf "ping":
private void ping() throws IOException{
try {
zumServer.write("PING");
System.out.println(vomServer.readLine()); // Gibt Antwort des Servers direkt aus
} catch (IOException e) {
System.err.println("Probleme bei void Ping() (IOException)");
return;
}
}
// Aufruf "echo":
private void echo(String eingabe) throws IOException{
try {
zumServer.write(eingabe); // Ganze Botschaft samt ECHO an Server geben
System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "ECHO "
} catch (IOException e) {
System.err.println("Probleme bei void Echo() (IOException)");
return;
}
}
// Aufruf "current time":
private void time() throws IOException{
try {
zumServer.write("CURRENT TIME");
System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "TIME "
} catch (IOException e) {
System.err.println("Probleme bei void Time() (IOException)");
return;
} }
} }
// Aufruf "current date":
private void date() throws IOException{
try {
zumServer.write("CURRENT DATE");
System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "DATE "
} catch (IOException e) {
System.err.println("Probleme bei void Date() (IOException)");
return;
}
}
// Kürzen der ersten 5 Buchstaben, gebraucht für ECHO, TIME, DATE:
private String kuerzen(String eingabe) {
return eingabe.substring(5);
}
} }
...@@ -8,7 +8,7 @@ import java.util.*; ...@@ -8,7 +8,7 @@ import java.util.*;
import java.text.*; import java.text.*;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) throws IOException {
Server server = new Server(); Server server = new Server();
System.out.println("Der Server wurde beendet."); System.out.println("Der Server wurde beendet.");
} }
......
...@@ -8,27 +8,82 @@ import java.util.*; ...@@ -8,27 +8,82 @@ import java.util.*;
import java.text.*; import java.text.*;
public class Server{ public class Server{
private boolean runs = false; // Ist ein Client connected?
private boolean shutdown = false; // Möchte ich den server beenden?
public Server() throws IOException{ public Server() throws IOException{
this.neuerServer(); while(!shutdown) {
if(!runs) {
runs = true;
BufferedReader prt = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte Porteingabe...");
try{
if (Integer.parseInt(prt.readLine()) == 2022) {
neuerServer();
}
else {
System.err.println("Falscher Port, momentan ist nur Port 2022 möglich");
runs = false;
}
} catch (NumberFormatException e) {
System.err.println("Es dürfen nur Zahlen eingegeben werden!");
runs = false;
}
}
}
} }
private void neuerServer(){ private void neuerServer(){
// Lokale Variablen (Nach Methode ist Server beendet) // Lokale Variablen (Nach Methode ist Server beendet)
Socket serverSocket; Socket serverSocket = null;
BufferedWriter zumClient; BufferedWriter zumClient;
BufferedReader vomClient; BufferedReader vomClient;
LinkedList<String> verlauf; LinkedList<String> verlauf;
try { try {
ServerSocket tempSocket = new ServerSocket(2022); ServerSocket tempSocket = new ServerSocket(2022); // Port wird festgelegt
System.out.println("Warte auf Client..."); System.out.println("Warte auf Client...");
serverSocket = tempSocket.accept(); serverSocket = tempSocket.accept(); // Sobald cleint sich verbindet, geht es weiter
} catch (IOException e) { System.out.println("Client hat sich verbunden!");
} catch (Exception e) {
System.err.println("Probleme bei Verbidnungsherstellung zum CLient"); System.err.println("Probleme bei Verbidnungsherstellung zum CLient");
return;
} }
verlauf = new LinkedList<String>(); verlauf = new LinkedList<String>();
try{ try{
zumClient = new BufferedWriter(new OutputStreamWriter(serverSocket.getOutputStream())); zumClient = new BufferedWriter(new OutputStreamWriter(serverSocket.getOutputStream()));
vomClient = new BufferedReader(new InputStreamReader(serverSocket.getInputStream()));
} catch (IOException e) {
System.err.println("Probleme mit dem Bufferedwriter/reader");
return;
}
// Befehle Werden aufgenommen
System.out.println("Erwarte Eingabe...");
boolean abbruch = false;
while(!abbruch) {
String eingabe = "";
try{
eingabe = vomClient.readLine();
System.out.println("Eingabe vom Client: "+eingabe);
} catch (IOException e) {
System.err.println("Probleme beim Lesen der Client-Eingabe");
abbruch = true;
}
try{
if(eingabe.equalsIgnoreCase("exit")){
abbruch = true;
runs = false;
zumClient.write("EXIT");
}
if(eingabe.equalsIgnoreCase("ping")) {
zumClient.write("PONG");
}
} catch (IOException | NullPointerException e) {
System.err.println("Fehler beim schreiben zum Client");
abbruch = true;
runs = false;
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment