Salve,
sto cercando di capire perchè la mia applicazione raggiunto un determinato punto non va più avanti nell'esecuzione, è come se entrasse in stand by! Si tratta di un'applicazione client-server!
La parte del server interessata è questa qui (Main):
Parte della classe ClientThreadcodice:ServerSocket server = null; Socket ss = null; try { server = new ServerSocket(5000); System.out.println("Server in ascolto.."); while(true) { ss = server.accept(); /*Iscrizione dei client*/ if(ss != null) { System.out.println("Stabilita connessione con una socket!"); // ObjectInputStream readInfo = new ObjectInputStream(ss.getInputStream()); String operazioneDettata = (String) readInfo.readUnshared(); ClientThread client = null; if(operazioneDettata.equalsIgnoreCase("Iscrizione")) { System.out.println("Ci sono..."); // client = new ClientThread(ss, operazioneDettata); } else { InfoUtente user = (InfoUtente)readInfo.readUnshared(); client = new ClientThread(ss, operazioneDettata, user, null); } client.start(); } } } catch(IOException e) { e.printStackTrace(); } catch(ClassNotFoundException e) { e.printStackTrace(); }
Invece la parte del client interessata è la seguente:codice:import java.util.*; import java.net.*; import java.io.*; class ClientThread extends Thread{ public ClientThread(Socket s, String opUser) throws IOException { porta=s; fromClient = new ObjectInputStream(porta.getInputStream()); toClient = new ObjectOutputStream(porta.getOutputStream()); operazioneUtente = opUser; } public ClientThread(Socket s, String opUser, InfoUtente dati, ArrayList<ClientThread> connessi) throws IOException { porta=s; fromClient = new ObjectInputStream(porta.getInputStream()); toClient = new ObjectOutputStream(porta.getOutputStream()); operazioneUtente = opUser; datiUtente = dati; utentiConnessi = connessi; } public void updateList(ArrayList<ClientThread> newList) { utentiConnessi = newList; } public InfoUtente getInfoUser() { return datiUtente; } public void run() { System.out.println("THREAD AVVIATO"); // QUESTO PUNTO NON VIENE RAGGIUNTO //CORPO... }
Praticamente i punti indicati lato server e lato client non vengono raggiunti! Lì il programma non va più avanti!codice:public Iscrizione(File datiUtente) //istanza della classe iscrizione { try { System.out.println("CI ARRIVO 1"); // this.datiUtente=datiUtente; connect = new Socket("localhost", 5000); System.out.println("CI ARRIVO 2"); // inviaDati = new ObjectOutputStream(connect.getOutputStream()); System.out.println("CI ARRIVO 3"); // //riceviDati = new ObjectInputStream(connect.getInputStream()); inviaDati.writeUnshared("Iscrizione"); inviaDati.flush(); InputStream in = connect.getInputStream(); System.out.println("CI ARRIVO 4"); // riceviDati = new ObjectInputStream(in); System.out.println("CI ARRIVO 5"); // QUESTO PUNTO NON VIENE RAGGIUNTO String risposta = (String)riceviDati.readUnshared(); //RESTO DEL CORPO }
Da cosa può dipendere il problema?
Dal thread che non viene lanciato? Oppure dell'oggetto objectInuptStream?

Rispondi quotando
