Hallo zusammen,
ich habe mich vor einigen Tagen schon einmal wegen eines Problems mit dem Senden eines Strings über das Netzwerk zu Wort gemeldet. Ich habe heute angefangen, neue Dinge in mein kleines primitives Chat Programm einzubauen und habe nun ein Problem.
Ich habe einen Client und einen Server und möchte vom Client aus eine Anweisung an den Server geben, den Befehl "dir" auszuführen und das was die Konsole anzeigt wieder an den Client zurück zu schicken.
Das ist der Teil des Programms um den es geht
Der dir Befehl wird ohne Probleme ausgeführt und die Ausgabe wird in dem String "s" gespeichert. Damit ich sicher gehen kann, dass der Befehl ausgeführt wurde, habe ich den String im Serverfenster ausgeben lassen, was auch ohne Probleme klappt. Jedoch möchte ich den String "s" wieder zurück an den Client schicken, aber das klappt irgendwie nicht.
Würde mich freuen wenn mir jemand erklären könnte was ich falsch gemacht habe.
Ich freue mich schon auf Antworten
Mit freundlichen Grüßen
PaP
ich habe mich vor einigen Tagen schon einmal wegen eines Problems mit dem Senden eines Strings über das Netzwerk zu Wort gemeldet. Ich habe heute angefangen, neue Dinge in mein kleines primitives Chat Programm einzubauen und habe nun ein Problem.
Ich habe einen Client und einen Server und möchte vom Client aus eine Anweisung an den Server geben, den Befehl "dir" auszuführen und das was die Konsole anzeigt wieder an den Client zurück zu schicken.
Das ist der Teil des Programms um den es geht
Java:
public void run()
{
try
{
Scanner eingabe = new Scanner(System.in);
String connect[] = Configuration.Hosts();
String portString = connect[2];
String hostString = connect[0];
String sportString = connect[1];
int port = Integer.parseInt(portString);
int sport = Integer.parseInt(sportString);
ServerSocket serversocket = new ServerSocket(port);
Socket socket = serversocket.accept();
System.out.println("PatChatClient hat sich angemeldet");
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String body;
do {
body = br.readLine();
System.out.println(body);
if(body.equals("dir"))
{
Socket ssocket = new Socket(hostString, sport);
PrintWriter pw = new PrintWriter(ssocket.getOutputStream());
Process p = Runtime.getRuntime().exec( "cmd /c dir" );
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()) );
for ( String s; (s = in.readLine()) != null; )
{
System.out.println(s);
pw.println("test");
pw.flush();
}
}
}while (body != null);
socket.close();
}
catch(IOException e)
{
System.out.println("PatChatClient hat die Verbindung getrennt");
System.err.println(e.toString());
}
}
}
Der dir Befehl wird ohne Probleme ausgeführt und die Ausgabe wird in dem String "s" gespeichert. Damit ich sicher gehen kann, dass der Befehl ausgeführt wurde, habe ich den String im Serverfenster ausgeben lassen, was auch ohne Probleme klappt. Jedoch möchte ich den String "s" wieder zurück an den Client schicken, aber das klappt irgendwie nicht.
Würde mich freuen wenn mir jemand erklären könnte was ich falsch gemacht habe.
Ich freue mich schon auf Antworten
Mit freundlichen Grüßen
PaP