[sockets] FIN_WAIT_2 en CLOSE_WAIT status

Pagina: 1
Acties:

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Topicstarter
Het probleem:

Ik heb een solaris (8) server waarop een perl-programma draait. Deze connect naar een programma dat draait op een NT-server via een normale TCP-verbinding. Dit werkt allemaal perfect, totdat de client (perl) de connectie afsluit (bv tijdens het afsluiten van het programma). Dit gebeurt op de normale manier (via close()).

Het probleem is nu dat de tcp-connectie niet goed wordt afgesloten. De TCP-connectie staat aan de solaris-kant op FIN_WAIT_2, en aan de NT-kant op CLOSE_WAIT.

Dit betekend dat de client een FIN heeft gestuurd, en de NT-kant een ACK heeft teruggestuurd. Maar nu wacht de client op een FIN terug zodat deze de laatste ACK kan sturen en daarna de connectie kan afsluiten (TIME_WAIT of CLOSED).

Op de een of andere manier gaat dat niet goed, de applicatie sluit de connectie niet goed af, en dat terwijl de applicatie (schijnbaar) via andere clients wel goed wordt afgesloten (maar dat heb ik nog niet gezien).

Ik ga er niet van uit dat er iets mis is met de client-kant (aan een close() kan weinig fout gaan), maar misschien heeft iemand ideeen?

Yo dawg, I heard you like posts so I posted below your post so you can post again.