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().