Предыдущая | Оглавление | Следующая |
Закрыть дескриптор сокета
#include <unistd.h>
int close(int s);
После использования сокета в своих зловредных целях, когда обмен данными закончен, и вообще, сокет ни для чего не нужен, его нужно закрыть, освободив тем самым системные ресурсу.
Удаленный компьютер может пойнять, что это произошло, двумя способами. Раз: он вызовет recv(), и она вернет 0. Два: он вызовет send(), получит сигнал SIGPIPE и send() вернет -1, а errno будет равно EPIPE.
Windows: функция называется closesocket(), а не close(). Если ты попытаешься вызвать close() для дескриптора сокета, возможно, Windows разозлится... а ты не хочешь ее злить!
Возвращает ноль при успехе, -1 при ошибке, сохраняя ее номер в errno.
s = socket(PF_INET, SOCK_DGRAM, 0); . . . // целая куча всяких разных действий с сокетом... . . . close(s); // вот, собственно, и все |
Предыдущая | Оглавление | Следующая |