Guten Tag zusammen!
Ich beiße mir gerade irgendwie die Zähne an einer Aufgabe aus... Irgendwie will nicht in meinen Kopf, wie das funktioniert.
Ich soll eine App schreiben, welche gleichzeitig einen Server Socket für eingehende Clients bereitstellt sowie einen eigenen Socket, um sich mit einem anderen Server zu verbinden.
Dazu habe ich eine sporadische GUI gebaut und mit einem "disconnect"-Button versehen. Mein Ziel wäre es, dass sobald man auf diesen Button klickt, die Verbindungen zu den anderen Parteien aufgelöst wird:
-> Bei der anderen Client-Partei soll diese quasi mit beenden "mitzerstört" werden.
Aber das ist noch nicht mal das eigentliche Problem. Es scheitert momentan schon daran, dass ich es einfach nicht ganz verstehe, wie ich es schaffe, dass beim Starten der App ein Thread anspringt und folgende Dinge erledigt:
1. Anmelden beim anderen Server über ein Text-Protokoll
2. Zeichnen der GUI für die App
3. Der Thread in eine Endlosschleife geht und die vom User in der GUI getätigten Operationen erledigt (das ist für mich noch am unverständlichsten wie das gehen soll)
4. Beim disconnect-Buttonklick wie oben beschrieben Thread auflösen und abmelden.
Ich habe heute den ganzen Tag versucht zu verstehen, wie ich das hinbekomme... Bin irgendwie zu blöd gerade.
Zudem verstehe ich nicht ganz, wieso folgende Zeilen dazu führen, dass sich die App aufhängt...
Dabei handelt es sich um durch einen Buttonklick angefordertes ActionEvent. Dabei sollen Daten vom Server angefordert werden.
In die Kommandozeile werden diese noch geschrieben, aber das Programm hängt sich dann auf.
Außerdem scheinen die Zeilen in der Kommandozeile auch "Macken" zu haben... immer die ersten Buchstaben sind nicht richtig.
Liebe Grüße
Yonnig
Ich beiße mir gerade irgendwie die Zähne an einer Aufgabe aus... Irgendwie will nicht in meinen Kopf, wie das funktioniert.
Ich soll eine App schreiben, welche gleichzeitig einen Server Socket für eingehende Clients bereitstellt sowie einen eigenen Socket, um sich mit einem anderen Server zu verbinden.
Dazu habe ich eine sporadische GUI gebaut und mit einem "disconnect"-Button versehen. Mein Ziel wäre es, dass sobald man auf diesen Button klickt, die Verbindungen zu den anderen Parteien aufgelöst wird:
-> Bei der anderen Client-Partei soll diese quasi mit beenden "mitzerstört" werden.
Aber das ist noch nicht mal das eigentliche Problem. Es scheitert momentan schon daran, dass ich es einfach nicht ganz verstehe, wie ich es schaffe, dass beim Starten der App ein Thread anspringt und folgende Dinge erledigt:
1. Anmelden beim anderen Server über ein Text-Protokoll
2. Zeichnen der GUI für die App
3. Der Thread in eine Endlosschleife geht und die vom User in der GUI getätigten Operationen erledigt (das ist für mich noch am unverständlichsten wie das gehen soll)
4. Beim disconnect-Buttonklick wie oben beschrieben Thread auflösen und abmelden.
Ich habe heute den ganzen Tag versucht zu verstehen, wie ich das hinbekomme... Bin irgendwie zu blöd gerade.
Zudem verstehe ich nicht ganz, wieso folgende Zeilen dazu führen, dass sich die App aufhängt...
Java:
else if(ae.getSource() == harbourInfo) {
try(OutputStreamWriter osw = new OutputStreamWriter(socket.getOutputStream());
PrintWriter pw = new PrintWriter(osw, true);
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferedReader br = new BufferedReader(isr);){
String msg = "getinfo:harbour";
pw.write(msg + "\r\n");
pw.flush();
String response = "";
String setInfoText = "";
while((response = br.readLine()) != null) {
System.out.println(response);
setInfoText = new String(setInfoText + response + "\n");
}
buttonInfos.setText(setInfoText);
} catch (IOException e) {
System.err.println(e.toString());
}
Dabei handelt es sich um durch einen Buttonklick angefordertes ActionEvent. Dabei sollen Daten vom Server angefordert werden.
In die Kommandozeile werden diese noch geschrieben, aber das Programm hängt sich dann auf.
Außerdem scheinen die Zeilen in der Kommandozeile auch "Macken" zu haben... immer die ersten Buchstaben sind nicht richtig.
Liebe Grüße
Yonnig
Zuletzt bearbeitet: