Ciao a tutti.
Ho creato una applet che riceve dei pacchetti in codice binario, vi incollo il corpo centrale:
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();
}
}
}
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.
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.