Appelant close
et shutdown
ont deux effets sur le socket sous-jacente.
La première chose à souligner est que le support est une ressource dans l'OS sous-jacent et plusieurs processus peuvent avoir une poignée pour le même socket sous-jacente.
Lorsque vous appelez close
il décrémente le nombre de handles par un, et si le nombre de handles a atteint zéro, alors la prise d'alimentation et de connexion associé passe par la fermeture normale de la procédure (envoi d'un FIN / expressions du FOLKLORE par les pairs) et la prise de courant est libéré.
La chose à payer l'attention ici, c'est que si le nombre de handles n'atteint pas zéro car un autre processus a encore une poignée à la prise, puis la connexion n'est pas fermée et que le socket n'est pas libéré.
D'autre part appelant shutdown
pour la lecture et l'écriture ferme la connexion sous-jacente et envoie une FIN / expressions du FOLKLORE par les pairs, indépendamment de la façon dont de nombreux processus ont des poignées pour le socket. Cependant, il n'est pas de libérer le socket et vous avez toujours besoin d'appeler le fermer par la suite.