java: indirizzo di eccezione si legano in errore l'uso quando non è in uso (come mostrato da netstat)

StackOverflow https://stackoverflow.com/questions/1541151

Domanda

La mia app effettua una connessione in uscita a un server utilizzando una porta di origine specifica (in previsione di problemi di firewall - un sistema indurito probabilmente richiederà porti ad essere specificato in anticipo)

.

Il mio problema è che la mia applicazione rende la connessione inizialmente. Tuttavia, se la connessione si rompe mai proverà di nuovo, ma la presa otterrà un BindException dicendo "indirizzo in uso". Questo non è il caso, come mostrato da -pant netstat. Essa mostra che la / coppia di socket remoto porta di origine non esiste (cioè, non sono nemmeno vederlo in un modo WAIT, la connessione semplicemente non esiste). Cercherò di collegare sempre senza alcun successo. Vorrei che se si trattasse di un problema con il precedente persistente collegamento, sarebbe alla fine timeout, ma non è così. Ottengo l'eccezione si legano per sempre.

Nel mio caso, mi è stato collegandomi ad 10.0.1.229:4001 DA 10.0.1.20:4002. Così mi è stato utilizzando netstat a cercare la presa di sorgente (10.0.1.20:4002) o la presa a distanza (10.0.1.229:4001), ma nessuno dei due è stato trovato dopo la connessione iniziale era rotto, che indica che l'indirizzo non deve essere in uso .

C'è qualcosa che potrebbe causare questa connessione di rimanere in giro anche se netstat non lo segnala?

Si prega di notare che sono su Linux e anche mi rendo conto che l'utilizzo di una porta di origine casuale avrebbe aggirare il mio problema, ma non risolvere il problema.

Per favore fatemi sapere.

Grazie, JBU

È stato utile?

Soluzione

close () non veniva chiamato quando certe cose brutte accadute -! Doh

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top