ok.grz cmq per le risposte. spero di riuscire a tirar fuori qualcosa che funziona :)
SE A QUALCUNO PUO INTERESSARE ECCO LA SOLUZIONE A QUESTO PROBLEMA:
accetto la connessione in un ciclo while fintanto che pending non riceve una connessione (alternativa di acceptsocket che è bloccante) in fatti accept socket lo richiamo una volta eseguito il pending.
poi alla fine per controllare la disconnessione ecco il codice:
ho messo il cilco try per differenziare la disconnessione manuale o involontaria (dovuti a vario fattori, quale disconnessione improvvisa, mancanza di linea, chiusura del pc immediata, insomma...tutto cioè che non è voluto). Quando ce disconnessione manuale nel ciclo non genera alcuna eccezione, quando invece è involontaria viene generata l'eccezione socketexception, e quidni basta intercettarla e farlo uscire in ogni caso e etvoila, il gicoo è fatto. TESTATO E FUNZIONANTE.