Ciao a tutti!!!
Sto implementando un'applicazione in Java mediante l'utilizzo di Netbeans...
Essendo un'applicazione client-server, il server si blocca nel momento in cui utilizzo i Socket.. Xò se eseguo lo stesso programma, senza l'uso della grafica creata con netbeans, non crea problemi e funziona perfettamente.
Questo è il codice dell'azione che crea i socket e la comunicazione (lato server):
Precisamente la GUI smette di "aggiornarsi" (il programma risulta bloccato ma continua a funzionare come server) alla seguente riga (subito dopo il while):codice:public void setOnline() throws Exception{ String usernameClient=""; String passwordClient=""; ServerSocket welcomeSocket=new ServerSocket(Integer.parseInt(portLabel.getText())); connectionButton.setText("Interrompi Server"); //eventTextArea.setText(eventTextArea.getText() + "Server pronto per stabilire connessioni."); statusLabel.setText("Ready."); while (true){ Socket connectionSocket=welcomeSocket.accept(); //eventTextArea.setText(eventTextArea.getText() + "\nIl client ha stabilito la connessione."); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient=new DataOutputStream(connectionSocket.getOutputStream()); usernameClient=inFromClient.readLine(); passwordClient=inFromClient.readLine(); //boolean connect=false; if (username.equals(usernameClient) && password.equals(passwordClient)){ //eventTextArea.setText(eventTextArea.getText() + "\nha effettuato con successo l'accesso."); outToClient.writeBytes("LOGGED\n"); //connect=true; } else{ //eventTextArea.setText(eventTextArea.getText() + "\nusername o password errati.\n"); outToClient.writeBytes("ERROR\n"); } connectionSocket.close(); /*while (connect){ String input=inFromClient.readLine(); if (input.equals("exit")){ connectionSocket.close(); eventTextArea.setText(eventTextArea.getText() + "\nIl client si è disconnesso."); connect=false; } }*/ } }
Socket connectionSocket=welcomeSocket.accept();
Qualcuno saprebbe aiutarmi?
Mi va bene qualsiasi soluzione... è un progetto che devo portare alla Maturità... non vorrei portare mezzo progetto fatto in grafica e mezzo no
Attento suggerimenti...
Andrea.
Sorgenti completi:
http://www.mediafire.com/?xwmvtmm2x05