Hallo,
mit meinem unteren Code möchte ich mich mit einem anderen Computer verbinden wenn ich einen button drücke
(buttonVerbinden). Das funktioniert auch, nur kann ich, wenn ich verbunden bin, auf meinem Fenster keinen Button mehr drücken, das der Programmabschnitt unten in der while- Schleife hängt und alles blockiert.
Ich würds so brauchen, dass ich eine Zahl hereinbekomme (500- die bekomme ich auch) und dann diese Zahl zurückschicke, dann wieder was reinbekomme, das ich aber ignoriere und dann andauernd daten hereinbekomme.
Wie kann ich das machen, dass ich Daten, die ich bekomme, lese aber gleichzeitig auch auf meinem Fenster etwas machen kann (z.B. Text eingeben, schließen usw.)
VIELEN DANK
lg
Hannes
mit meinem unteren Code möchte ich mich mit einem anderen Computer verbinden wenn ich einen button drücke
(buttonVerbinden). Das funktioniert auch, nur kann ich, wenn ich verbunden bin, auf meinem Fenster keinen Button mehr drücken, das der Programmabschnitt unten in der while- Schleife hängt und alles blockiert.
Ich würds so brauchen, dass ich eine Zahl hereinbekomme (500- die bekomme ich auch) und dann diese Zahl zurückschicke, dann wieder was reinbekomme, das ich aber ignoriere und dann andauernd daten hereinbekomme.
Wie kann ich das machen, dass ich Daten, die ich bekomme, lese aber gleichzeitig auch auf meinem Fenster etwas machen kann (z.B. Text eingeben, schließen usw.)
VIELEN DANK
lg
Hannes
Code:
private void buttonVerbindenActionPerformed(java.awt.event.ActionEvent evt) {
try {
Socket sock = new Socket("10.10.0.112", 2300);
InputStream in = sock.getInputStream();
OutputStream out = sock.getOutputStream();
sock.setSoTimeout(3000);
OutputThread outTh = new OutputThread(in); //dieser Thread ist zur Ausgabe der Werte auf die Konsole
outTh.start();
BufferedReader conin = new BufferedReader(new InputStreamReader(System.in));
String line = "";
int i = 0;
while (true) //hier bleibe ich hängen
{
line = conin.readLine();
if (line.length() > 3)
break;
out.write(line.getBytes());
out.write('\n');
outTh.yield();
}
System.out.println("terminating output thread....");
outTh.requestStop();
outTh.yield();
try {
Thread.sleep(1000);
}
catch (InterruptedException e)
{
}
in.close();
out.close();
sock.close();
}
catch (IOException e)
{
System.err.println("Fehler: " + e.toString());
//System.exit(1);
}
}