Ciao a tutti.
Ho creato una applet che riceve dei pacchetti in codice binario, vi incollo il corpo centrale:
Il mio problema è che quando premo il tasto connetti la applet si collega ed il bottone(connetti) rimane premuto fino a quando non interrompo il flusso di dati dall'altro programma da cui riceve i pacchetti.codice:class client implements ActionListener { public void actionPerformed(ActionEvent e1) { try { String source = null; PacketSource reader; if (source == null) { reader = BuildSource.makePacketSource(); } else { reader = BuildSource.makePacketSource(source); } if (reader == null) { System.err.println("Invalid packet source (check your MOTECOM environment variable)"); System.exit(2); } //Connessione al flusso di dati reader.open(PrintStreamMessenger.err); for (;;) { //Ciclo infinito che mi blocca la applet byte[] packet = reader.readPacket(); int i=0; jTextArea1.append("Server:"+hexString(packet)+" \n"); // stampa sulla jTextArea Dump.printPacket(System.out, packet);//stampa sul terminale il flusso di dati System.out.println(); System.out.flush(); } } catch(Exception e) { System.out.print("Whoops! It didn't work! \n"); e.printStackTrace(); } } }
Inoltre i dati non vengono stampati sulla jTextArea1 sempre se prima non ho interrotto la comunicazione dall'altro programma.
Come potete vedere uso un ciclo infinito: for(;
Forse devo cambiarlo con qualcosa di più idoneo...
Vi ringrazio anticipatamente dell'aiuto.


Rispondi quotando