Client/Server-Programmierung - Wer kann mir HELFEN?

Hallo,
ich muss für meinen Studiengang einen Java-Kurs belegen, bei dem wir jede Woche Aufgaben kriegen, die wir lösen müssen. Ich bin mittlerweile schon bei der 5. Aufgabe und komme langsam nicht mehr weiter und hoffe daher, das mir jemand von euch eventuell helfen kann. (Ich bin noch Java Anfängerin)

Meine Aufgabe ist es, eine Client/Server-Anwendung zu schreiben, die folgendes tun soll:

  • der Client soll eine Datei mit Rechenaufgaben an den Server geben und der Server soll diese Aufgaben lösen und die Ergebnisse an den Clienten zurück schicken. (die Rechenaufgabe soll eine einfache Aufgabe sein, wie z. Bsp. 2+2=4)
  • Vom Client aus soll der Benutzer den Befehl „Sende Rechenaufgaben.txt“ abschicken. Der Client soll dann in seinem lokalen Verzeichnis suchen und den Inhalt der Datei –falls vorhanden - an den Server liefern.
    -Der Server soll den Inhalt der Datei Rechenaufgaben.txt empfangen und den Inhalt unter EmpfangeneAufgaben.txt in seinem lokalen Verzeichnis speichern
    -Dann soll der Server die Aufgaben berechnen und eine Datei Ergebnisse.txt erstellen
    -Zum Schluss soll der Server den Inhalt der Datei Ergebnisse.txt an den Clienten senden
    -Der Client empfängt dann den Inhalt der Datei Ergebnisse.txt und gibt diesen auf der Konsole aus.

**Bisher habe ich folgendes hinbekommen: **

FÜR DEN CLIENT

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
	{
		Socket socket=new Socket("127.0.0.1",1565);
		PrintWriter printW=new PrintWriter(socket.getOutputStream());


 	public class Zahlen
 	{
 	 public static void main(String[] args)
  	 {
    	  int a = 2;
      	  int b = 4;
          int c;
 
         c = b + a;
 
      System.out.println("Das Ergebnis lautet: "+ c);
 	 }
 	}

		BufferedReader bufRead=new BufferedReader(new InputStreamReader(socket.getInputStream()));
		System.out.println("Ausgabe vom Server war"+bufRead.readLine());
	}
	
}

Ich bin mir leider total unsicher, ob das was ich bisher gemacht habe überhaupt so richtig ist, deswegen habe ich mit dem Programm für den Server gar nicht erst angefangen… Ich weiß auch nicht, wie ich die Datei Rechenaufgaben.txt in mein Java-Programm einbauen kann :frowning: kann mir jemand weiter helfen??

Warum das immer in Dateien zwischengespeichert werden soll, ist nicht ganz klar. Aber ein paar “geratene” Punkte… : Die Datei würde man wohl als einen oder mehrere Strings einlesen. Vermutlich gibt es eine Aufgabe pro Zeile, d.h. man könnte z.B. eine “List zeilen” erstellen, und die dann füllen, indem man einen BufferedReader(InputStreamReader(inputStream)) erstellt, der die einzelnen Zeilen liest. Dieser “inputStream” wäre dann einmal ein FileInputStream (wenn die Datei gelesen wird), und einmal der InputStream, den man sich von einem Socket holt. Die Ergebnisse könnten umgekehrt dann mit einem PrintWriter entweder in eine Datei oder in den OutputStream eines Sockets geschrieben werden.
Die Aufgaben aus diesen Zeilen rauszulesen könnte aufwändig werden. In letzter Konsequenz müßte dafür ein kompletter Parser geschrieben werden (außer wenn man trickst. Das müßtest du nochmal genauer beschreiben.