Это архив сайта coldflame.by.ru, он не обновлялся с 2007 года. Мой современный сайт тут: http://leonid.shevtsov.me.
Домой! Обо мне Специально для РИ-06-1 Разнообразное... барахло, короче :) Программы и прочее Статьи и переводы Блог SmartDaemon
Предыдущая ОглавлениеСледующая

close()

Закрыть дескриптор сокета

Прототип

#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);  // вот, собственно, и все

См. также

socket(), shutdown()


Предыдущая ОглавлениеСледующая