ИМЯ
getpeername − получить имя удалённой стороны, подключенной к сокету
ОБЗОР
#include <sys/socket.h>
int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
ОПИСАНИЕ
Getpeername возвращает имя удалённой стороны, подключенной к сокету s. Параметр namelen должен быть инициализирован, чтобы задать размер пространства, на которое указывает name. При возврате он содержит фактический размер, возвращённого name (в байтах). Если предоставленный буфер слишком мал, имя усекается.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха, возвращается ноль. В случае ошибки, возвращается −1 и значение errno устанавливается соответствующим образом.
ОШИБКИ
EBADF |
Аргумент s не является правильным дескриптором. |
ENOTSOCK
Аргумент s является файлом, а не сокетом.
ENOTCONN
Указанный сокет не подключён.
ENOBUFS
В системе было доступно недостаточно ресурсов для выполнения этой операции.
EFAULT |
Параметр name указывает на память, которая не является допустимой частью адресного пространства процесса. |
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (функция getpeername впервые появилась в 4.2BSD).
ЗАМЕЧАНИЕ
Третий аргумент getpeername фактически является ’int *’ (это так в BSD 4.*, а также в libc4 и libc5). Некоторые POSIX реализации используют тип socklen_t. Пока это не адаптировано в стандарте, но glibc2 уже следует этому и также использует socklen_t. Смотри также accept(2).
СМОТРИ ТАКЖЕ
accept(2), bind(2), getsockname(2)
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2004