Aqui está uma foto do diagrama de estado do TCP:
Um sistema acaba em LAST_ACK
quando recebe um FIN
e se torna o "passivo" mais próximo.
A pilha de IPs do sistema responde então a esse FIN
com um ACK
e define o soquete relacionado como CLOSE_WAIT
.
O aplicativo precisa entender que o soquete está pronto, chame close()
no soquete, então a pilha IP do sistema envia um FIN
e define o soquete como LAST_ACK
.
O terminal remoto precisa responder com um ACK
e o soquete se torna CLOSED
. Este é o passo que não está acontecendo.
Vejo que você está usando o endereço IP do sistema local como origem e destino. Desculpe, não sei mais sobre a comunicação do host local no Windows. Isso pode ser um problema do Windows ou um problema do Oracle. Espero que pelo menos ajude você a entender o que está acontecendo, se não por que .