ciao,
da un paio di giorni ho un problema che non riesco a risolvere.
Ho creato questa classe lato server(che contiene un socket che accetta connessioni in ingresso e sta sempre in ascolto da quando viene creata una nuova istanza di questa classe...).
Questa classe (illustrata sotto in pseudocodice) va ad integrare un programma in locale formato da una interfaccia grafica (una jframe).
Questa è una parte di codice della classe contenente il socket:
codice:
import java.net.*;
import java.io.*;
public class ServerProva{
public boolean connVal;
public boolean istruzioniFlag=false;
public ServerSocket server;
public Socket client;
public InputStream input;
public ServerProva(){
connVal=false;
try{
while(!connVal){
server=new ServerSocket(3575);
client=server.accept();
if(!(connessioneValida(leggiInput()))){
OutputStream os=client.getOutputStream();
String segnale=new String(" ");
byte[]buf=new byte[1];
buf=segnale.getBytes();
os.write(buf);
chiudiConnessione();
}
else{
//se la connessione è valida scrivi sul socket
connVal=true;
}
...
}
Dal main si chiama una nuova istanza sia della classe derivata da JFrame che della classe scritta qui sopra.
Il programma deve permettere di eseguire operazioni sia in locale che in remoto, ma il fatto è che quando il socket sta in ascolto, la jframe è, come dire, impallata; quando poi arriva l'input e il socket si chiude, la jframe torna a funzionare bene.
Chi può darmi una mano?
Grazie.