Ho un server multithread che accetta connessioni di client su un socket ServerSocket e le assegna a socket Socket.
Una volta accettata una nuova connessione, viene avviato un nuovo thread per gestirla del tipo :
queryHandler queryHand = new queryHandler(clientSock);
La classe queryHandler funziona su un altro thread (estende Thread e si avvia nel costruttore) deve mettersi in attesa di oggetti inviati dal client, riceverli, elaborarli e reinviarli.
Per fare questo, dopo aver costruito l oggetto, viene usato un metodo run() del tipo:
...
ObjectInputStream ois = new ObjectInputStream(client.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
queryAsk ask = (queryAsk)ois.readObject();
...
queryReply reply = new queryReply();
oos.writeObject(reply);
...
il problema che ho rilevato inserendo la stampa di alcuni messaggi di controllo sta nel fatto che nel momento dell acquisizione delle streams il thread si blocca e non va piu avanti (avevo provato anche a farle prendere nel costruttore ma cosi facendo non si avviava nemmeno il main, si bloccava prima di this.start())
qualcuno mi illumina?
grazie : )