Ciao, scusa ma ho problemi ad interpretare il codice, ti dico cosa leggo io magari sbaglio; instanzi l'oggetto InvioDati nella variabile "response", dopodichè fai un ciclo while praticamente infinito (response.getResposne().equals("Niente") dovrebbe essere sempre true perchè nel costruttore di InvioDati lo valorizzi così), poi al di fuori del ciclo while provi ad instanziare la variabile "risposta", ma in teoria li non ci arrivi mai per il ciclo di cui sopra... è giusto quello che leggo, o sto interpretando male? Se è giusto, torno ad ipotizzare che la seconda volta che fai il giro, il socket è ancora aperto (non avendolo mai chiuso perchè response.chiudi() non viene mai chiamato) e ti da l'eccezione... fammi sapere
Ciao
P