Поделиться через


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

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

Синтаксис

int WSAAPI 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 не входит в допустимую часть адресного пространства пользователя или параметр namelen слишком мал.
WSAEINPROGRESS
Выполняется блокирующий вызов Windows Sockets 1.1 или поставщик услуг по-прежнему обрабатывает функцию обратного вызова.
WSAENOTCONN
Сокет не подключен.
WSAENOTSOCK
Дескриптор не является сокетом.

Комментарии

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

Для сокетов датаграмм будет возвращен только адрес однорангового узла, указанный в предыдущем вызове подключения . Любой адрес, указанный в предыдущем вызове 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 winsock2.h (включая Winsock2.h)
Библиотека Ws2_32.lib
DLL Ws2_32.dll

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

Функции Winsock

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

bind

connect;

getsockname

Sendto

Сокета