Servus 
Hab hier eine Aufgabe wo ich ned weiterkomm.
Und zwar lautet sie:
Folgende Socket-Anwendung (Client+Server) soll das können:
- Server-Prog. läuft nach dem Start kontinuierlich,d.h. kann mehrere Aufgaben nacheinander behandeln.
- Vom Client aus können Sie den Befehl „Sende <Dateiname> <Dateiinhalt>“ abschicken.
- Der Client sucht in seinem lokalen Verzeichnis und liefert den Inhalt der Datei –falls vorhanden - an den Server.
- Der Server empfängt den <Dateiinhalt> und speichert den Inhalt unter <Dateiname> in seinem lokalen Verzeichnis
- Vom Client aus können Sie den Befehl „Hole <Dateiname>“ abschicken. Der Server sucht in seinem lokalen Verzeichnis und liefert den Inhalt der Datei –falls vorhanden - an den Client zurück
- Der Inhalt der Datei wird auf der Konsole des Clients ausgegeben
- Vom Client aus können Sie den Befehl „Schliesse“ absetzen. Dieser Befehl bewirkt serverseitig, dass sich das Server-Programm beendet.
Folgende Programme existieren:

Hab hier eine Aufgabe wo ich ned weiterkomm.
Und zwar lautet sie:
Folgende Socket-Anwendung (Client+Server) soll das können:
- Server-Prog. läuft nach dem Start kontinuierlich,d.h. kann mehrere Aufgaben nacheinander behandeln.
- Vom Client aus können Sie den Befehl „Sende <Dateiname> <Dateiinhalt>“ abschicken.
- Der Client sucht in seinem lokalen Verzeichnis und liefert den Inhalt der Datei –falls vorhanden - an den Server.
- Der Server empfängt den <Dateiinhalt> und speichert den Inhalt unter <Dateiname> in seinem lokalen Verzeichnis
- Vom Client aus können Sie den Befehl „Hole <Dateiname>“ abschicken. Der Server sucht in seinem lokalen Verzeichnis und liefert den Inhalt der Datei –falls vorhanden - an den Client zurück
- Der Inhalt der Datei wird auf der Konsole des Clients ausgegeben
- Vom Client aus können Sie den Befehl „Schliesse“ absetzen. Dieser Befehl bewirkt serverseitig, dass sich das Server-Programm beendet.
Folgende Programme existieren:
Code:
EchoClient.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class EchoClient {
public static void main (String []args) throws UnknownHostException, IOException
{
// verbinde mit dem rechner unter der ip adresse
// 127.0.0.1 auf dem port 1565
Socket socket=new Socket("127.0.0.1",1565);
// erzeuge kommunikationsendpunkt um daten zu schicken
PrintWriter printW=new PrintWriter(socket.getOutputStream());
printW.println("Hallo in Kleiner Schrift\n\r");
printW.flush();
//erzeuge kommunikationsendpunkt um daten zu lesen
BufferedReader bufRead=new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("Ausgabe vom Server war"+bufRead.readLine());
}
}
Code:
EchoSocketServer.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class EchoSocketServer {
public static void main(String[] args) throws IOException {
// Der dienst wird auf dem port 1565 gestartet
ServerSocket server=new ServerSocket(1565);
// warte solange bis ein client eine verbindung herstellt
Socket socket=server.accept();
//erzeuge kommunkationsendpunkt um daten zulesen
BufferedReader bufRead=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//eingehende zeile wird eingelesne
String input=bufRead.readLine();
//...und auf der kommandozeile ausgegeben
System.out.println(input);
//string wird in klein-buchstaben umgewandelt
input=input.toLowerCase();
// kommunkationsendpunkt zum schreiben von daten an den client wird erstellt
PrintWriter printW=new PrintWriter(socket.getOutputStream());
//daten werden an den client geschickt
printW.println(input);
printW.flush();
}
}
Code:
ReadFromFile.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFromFile {
public static void main(String[] args) {
ReadFromFile rff=new ReadFromFile();
rff.readFile();
}
public void readFile()
{
// es wir das die Klasse File benutzt um eine Datei input.txt zu referenzieren.
File file = new File ("input.txt");
// Die Klasse Scanner emöglich es uns einfach mit einem File Objekt zu arbeiten und dessen Inhalt einzulesen
Scanner scanner = null;
try {
// hier verbinde ich die Objekte der Klasse Scanner und File
scanner = new Scanner (file);
} catch (FileNotFoundException e) {
System.out.println ("File not found!");
System.exit (0);
}
// solange die methode hasNext im Scanner weitere Zeilen feststellt
while(scanner.hasNext())
{
// es wird eine zeile ausgelesen aus der datei und in der variable tmp gespeichert
String tmp=scanner.nextLine();
// die gerade eingelesene Zeile wird auf der Kommandozeile ausgegeben
System.out.println(tmp);
}
}
}
Code:
ReadFromConsole.java
import java.util.Scanner;
public class ReadFromConsole {
public static void main(String[] args) {
ReadFromConsole rfc = new ReadFromConsole();
rfc.readIn();
}
public void readIn() {
System.out.println("Wir möchten die Werte von Personen ueber die Konsole einlesen.");
Scanner scanner = new Scanner(System.in);
while (true) {
String tmpName = "";
String tmpVorname = "";
String tmpWeiter = "";
System.out.println("Bitte geben Sie zuerst den Namen ein:");
tmpName = scanner.next();
System.out.println("Bitte geben Sie danach den Vornamen ein:");
tmpVorname = scanner.next();
System.out.println("Die Daten der eingegebenen Person:"+tmpName+" "+tmpVorname);
System.out
.println("Moechten Sie fortfahren mit der Eingabe (ja/nein):");
tmpWeiter = scanner.next();
if (tmpWeiter.equals("nein")) {
System.out.println("Programm wird beendet");
System.exit(1);
return;
}
}
}
}