Netzwerkprogrammierung

Status
Nicht offen für weitere Antworten.

e9926044

Bekanntes Mitglied
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

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);
	    }	
	
    }
 
S

SlaterB

Gast
die gesamte Logik kommt in die run-Operation eines Threads,
die actionPerformed started nur den Thread,

zu Threads siehe zunächst in passende Kapitel von Lehrbüchern,
bis Info drumherum schadet nicht
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben