Функция shutdown() используется для немедленного закрытия
всех или некоторых связей для сокета:
#include <sys/socket.h>
#include <sys/uio.h>
int shutdown(int s, int how);
Первый аргумент функции - дескриптор сокета, который должен быть закрыт.
Второй аргумент - целое значение, указывающее, каким образом закрывается
сокет, а именно:
0 - сокет закрывается для чтения;
1 - сокет закрывается для записи;
2 - сокет закрывается для чтения и записи.
Функция close() закрывает сокет и разрывает все связи с ним.
В отличие от функции shutdown() функция close
может дожидаться окончания всех операций с сокетом, обеспечивая "нормальное",
а не аварийное закрытие соединений.
#include <sys/socket.h>
#include <sys/uio.h>
int close (int s);
Аргумент функции - дескриптор закрываемого сокета.