Назначить имя сокета
#include <sys/types.h>
#include <sys/socket.h>
int bind( int s,
const struct sockaddr *name,
socklen_t namelen );
- s
- Связываемый дескриптор файла.
- name
- Указатель на структуру sockaddr, содержащую адрес, который следует связать с сокетом. Длина и формат сокета зависят от его адресного семейства.
- namelen
- Размер структуры sockaddr, на которую указывает name.
libsocket
Когда сокет создается при помощи socket(), он появлется в пространстве имен (адресном семействе), однако ему не присваивается имя. Функция bind() присваивает имя к данному безымянному сокету.
| Функция bind() присваивает локальный адрес. Используйте connect() для присвоения удаленного адреса. |
Правила, используемые для привязки имен, различаются в зависимости от домена связи.
| Перед вызовом bind() для сокета AF_INET , установите поле af_family структуры sockaddr в значение AF_INET . |
- 0
- Успешное завершение.
- -1
- Возникла ошибка. Код ошибки записан в errno.
- EACCES
- Запрошенный адрес защищен, и у текущего пользователя недостаточно прав для доступа к нему.
- EADDRINUSE
- Указанный адрес уже используется.
- EADDRNOTAVAIL
- Указанный адрес недоступен на локальном компьютере.
- EBADF
- Некорректный дескриптор s.
- EFAULT
- Параметр name располагается в невалидной части адресного пространства пользователя.
- EINVAL
- Сокет уже привязан к адресу.
- ENOTSOCK
- Данный дескриптор файла не предназначен для сокета.
POSIX 1003.1
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
ICMP, IP, TCP, и UDP протоколы
connect(), getpeereid(), getsockname(), listen(), socket()
Предыдущий раздел: Описание API сетевой библиотеки