Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245

    [java]: conflitto tra socket e jframe

    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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    8
    Devi far implementare Runnable dalla classe ServerProva in modo che ogni istanza sia un Thread separato.
    ciao
    mArco

  3. #3
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Devi far implementare Runnable dalla classe ServerProva in modo che ogni istanza sia un Thread separato.
    ok, proverò con Runnable.

    A presto.

  4. #4
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Funziona perfettamente. Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.