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;
import java.io.*;
import java.lang.*;
import java.net.*;
import java.nio.*;
import java.security.*;
import java.util.*;
import java.text.*;
public class Client {
private String ip = "";
private int port = -1;
private Socket clientSocket;
private BufferedWriter zumServer;
private BufferedReader vomServer;
public Client() throws IOException{
public Client() throws IOException {
// Lokale Variablen (Nach Konstruktor nicht mehr nötig)
String ip = "";
int port = -1;
Socket clientSocket;
// Eingaben müssen aufgenommen werden:
BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port, später Methodenaufrufe
@@ -21,10 +17,9 @@ public class Client {
ip = info.readLine();
System.out.println("Port?");
String portFragezeichen = info.readLine(); // Port ist vorerst String
info.close();
// Port muss vom String zum Int werden:
try{
try {
port = Integer.parseInt(portFragezeichen);
} catch (NumberFormatException e) { // Falls er keine Zahl ist
System.err.println("Der Port ist keine Zahl!");
@@ -32,14 +27,13 @@ public class Client {
}
// Wenn falsche IP oder port eingegeben wird:
if(!ip.equals("127.0.0.1")){
if(!ip.equals("localhost"))
{
if (!ip.equals("127.0.0.1")) {
if (!ip.equals("localhost")) {
System.err.println("Falsche IP!");
return;
}
}
if(port != 2022){
if (port != 2022) {
System.err.println("Falscher Port!");
return;
}
@@ -53,84 +47,46 @@ public class Client {
}
// Erschaffung von Kommunikationsverbindung:
BufferedWriter zumServer;
BufferedReader vomServer;
try {
zumServer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
vomServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
} catch (IOException e) {
System.err.println("Problem beim Bufferedwriter(IOException)");
return;
}
// Eingaben werden aufgenommen und bearbeitet bis "close":
System.out.println("Verbindung hergestellt, erwarte Auftrag:");
while(true)
{
String eingabe = info.readLine();
if(eingabe.equalsIgnoreCase("close")){
break;
}
else if(eingabe.equalsIgnoreCase("ping")){
ping();
System.out.println("Verbindung hergestellt. erwarte Auftrag:");
while (clientSocket.isConnected()) {
String eingabe = "";
String ausgabe = "";
try {
eingabe = info.readLine();
zumServer.write(eingabe + "\n"); // Alles wird an den Server geschickt
zumServer.flush();
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")){
echo(eingabe);
if (ausgabe.equals("EXIT")) {
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