Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

close()/ shutdown()

Pentru a închide un socket se foloseste funcția de închidere a unui descriptor de fisier din Unix:

#include <unistd.h>
   
int close(ind fd);

Acest lucru va împiedica atât realizarea de alte citiri, cât și de scrieri din socket. Pentru mai mult control asupra socketului, se folosește funcția shutdown(), care permite întreruperea comunicatiei selectiv, schimband modul de utilizare a legaturii full-duplex.

Pentru a afla mai multe informatii, putem accesa 5.9 close() and shutdown()—Get outta my face!.

#include <sys/socket.h>
   
int shutdown(int sockfd, int how);

Explicatii:

  • sockfd - Descriptorul de fișier returnat de socket()
  • how - Specifica modul de inchidere: SHUT_RD - Nu se mai citesc date. SHUT_WD - Nu se mai pot face transmiteri de date. SHUT_RDWR - Se intrerupe comunicația în ambele direcții.

Note

Shutdown() nu închide un descriptor de fisier, ci doar îi schimbă modul de utilizare. Resursele trebuie eliberate folosind close().