Функция getpeername (winsock.h)

Функция getpeername извлекает адрес однорангового узла, к которому подключен сокет.

Синтаксис

int getpeername(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

Параметры

[in] s

Дескриптор, определяющий подключенный сокет.

[out] name

Структура SOCKADDR , которая получает адрес однорангового узла.

[in, out] namelen

Указатель на размер параметра name (в байтах).

Возвращаемое значение

Если ошибки не произошло, getpeername возвращает ноль. В противном случае возвращается значение SOCKET_ERROR, а определенный код ошибки можно получить, вызвав WSAGetLastError.

Код ошибки Значение
WSANOTINITIALISED
Перед использованием этой функции должен быть выполнен успешный вызов WSAStartup .
WSAENETDOWN
Произошел сбой сетевой подсистемы.
WSAEFAULT
Имя или параметр namelen не находится в допустимой части адресного пространства пользователя или параметр namelen слишком мал.
WSAEINPROGRESS
Выполняется блокирующий вызов Windows Sockets 1.1 или поставщик услуг по-прежнему обрабатывает функцию обратного вызова.
WSAENOTCONN
Сокет не подключен.
WSAENOTSOCK
Дескриптор не является сокетом.

Комментарии

Функция getpeername извлекает адрес однорангового узла, подключенного к сокету, и сохраняет адрес в структуре SOCKADDR , определяемой параметром name . Эта функция работает с любым семейством адресов и просто возвращает адрес, к которому подключен сокет. Функцию getpeername можно использовать только в подключенном сокете.

Для сокетов датаграмм будет возвращен только адрес однорангового узла, указанный в предыдущем вызове connect . Любой адрес, указанный в предыдущем вызове sendto , не будет возвращен командлетом getpeername.

При вызове параметр namelen содержит размер буфера имен (в байтах). При возврате параметр namelen содержит фактический размер возвращаемого параметра name (в байтах).

Windows Phone 8. Эта функция поддерживается для приложений Магазина Windows Phone Windows Phone 8 и более поздних версий.

Windows 8.1 и Windows Server 2012 R2. Эта функция поддерживается для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и более поздних версий.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1, Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winsock.h (включая Winsock2.h)
Библиотека Ws2_32.lib
DLL Ws2_32.dll

См. также раздел

Функции Winsock

Справочник по Winsock

bind

connect;

getsockname

Sendto

Сокета