Skip to content
Snippets Groups Projects

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

Closed Nicolas Mateischek requested to merge Philipp_C+Server into main
5 files
+ 330
102
Compare changes
  • Side-by-side
  • Inline
Files
5
package heimaufgaben;
package heimaufgaben;
import java.io.*;
import java.io.*;
import java.lang.*;
import java.net.*;
import java.net.*;
import java.nio.*;
import java.security.*;
import java.util.*;
import java.text.*;
public class Client {
public class Client {
private String ip = "";
private int port = -1;
public Client() throws IOException {
private Socket clientSocket;
private BufferedWriter zumServer;
// Lokale Variablen (Nach Konstruktor nicht mehr nötig)
private BufferedReader vomServer;
String ip = "";
public Client() throws IOException{
int port = -1;
 
Socket clientSocket;
// Eingaben müssen aufgenommen werden:
// Eingaben müssen aufgenommen werden:
BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port, später Methodenaufrufe
BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port, später Methodenaufrufe
@@ -21,10 +17,9 @@ public class Client {
@@ -21,10 +17,9 @@ public class Client {
ip = info.readLine();
ip = info.readLine();
System.out.println("Port?");
System.out.println("Port?");
String portFragezeichen = info.readLine(); // Port ist vorerst String
String portFragezeichen = info.readLine(); // Port ist vorerst String
info.close();
// 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!");
@@ -32,14 +27,13 @@ public class Client {
@@ -32,14 +27,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;
}
}
@@ -53,84 +47,46 @@ public class Client {
@@ -53,84 +47,46 @@ public class Client {
}
}
// Erschaffung von Kommunikationsverbindung:
// Erschaffung von Kommunikationsverbindung:
 
BufferedWriter zumServer;
 
BufferedReader vomServer;
try {
try {
zumServer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
zumServer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
vomServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
vomServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
} catch (IOException e) {
} catch (IOException e) {
System.err.println("Problem beim Bufferedwriter(IOException)");
System.err.println("Problem beim Bufferedwriter(IOException)");
 
return;
return;
}
}
// 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(true)
while (clientSocket.isConnected()) {
{
String eingabe = "";
String eingabe = info.readLine();
String ausgabe = "";
if(eingabe.equalsIgnoreCase("close")){
try {
break;
eingabe = info.readLine();
}
zumServer.write(eingabe + "\n"); // Alles wird an den Server geschickt
else if(eingabe.equalsIgnoreCase("ping")){
zumServer.flush();
ping();
ausgabe = vomServer.readLine(); // Ausgabe vom Server wird verglichen
 
} catch (IOException e) {
 
System.err.println("Probleme bei der Nachrichtenübermittlung an Server");
}
}
else if(eingabe.substring(0,4).equalsIgnoreCase("echo")){
if (ausgabe.equals("EXIT")) {
echo(eingabe);
System.out.println(ausgabe);
 
info.close(); // Exit beendet alle Schnittstellen mit Server
 
clientSocket.close();
 
break; // Abbruch des while loops
 
} else if (ausgabe.length()>3 && ausgabe.substring(0, 4).equals("ECHO")) {
 
System.out.println(ausgabe.substring(5));
 
} else if (ausgabe.length()>3 && ausgabe.substring(0, 4).equals("TIME")) {
 
System.out.println(ausgabe.substring(5));
 
} else if (ausgabe.length()>3 && ausgabe.substring(0, 4).equals("DATE")) {
 
System.out.println(ausgabe.substring(5));
 
} else if (ausgabe.length()>4 && ausgabe.substring(0, 5).equals("ERROR")) {
 
System.out.println(ausgabe.substring(6));
 
} else { // Bei Ping, Verlauf etc:
 
System.out.println(ausgabe);
}
}
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);
}
}
}
Loading