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

Функция getservbyport извлекает сведения о службе, соответствующие порту и протоколу.

Синтаксис

servent * getservbyport(
  [in] int        port,
  [in] const char *proto
);

Параметры

[in] port

Порт для службы в порядке сетевых байтов.

[in] proto

Необязательный указатель на имя протокола. Если значение равно NULL, getservbyport возвращает первую запись службы, для которой порт соответствует s_portструктуры обслуживания . В противном случае getservbyport соответствует параметрам port и proto .

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

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

Код ошибки Значение
WSANOTINITIALISED
Перед использованием этой функции должен произойти успешный вызов WSAStartup .
WSAENETDOWN
Произошел сбой сетевой подсистемы.
WSAHOST_NOT_FOUND
Служба достоверных ответов не найдена.
WSATRY_AGAIN
Неавторная служба не найдена или сбой сервера.
WSANO_RECOVERY
Неустранимые ошибки, база данных служб недоступна.
WSANO_DATA
Допустимое имя, без записи данных запрошенного типа.
WSAEINPROGRESS
Выполняется блокирующий вызов Windows Sockets 1.1 или поставщик услуг по-прежнему обрабатывает функцию обратного вызова.
WSAEFAULT
Параметр proto не является допустимой частью адресного пространства пользователя.
WSAEINTR
Блокирующий вызов Windows Socket 1.1 был отменен через WSACancelBlockingCall.

Комментарии

Функция getservbyport возвращает указатель на обслуживаемую структуру, как и в функции getservbyname .

Обслуживаемая структура выделяется windows Sockets. Приложение никогда не должно пытаться изменить эту структуру или освободить какие-либо из ее компонентов. Кроме того, для каждого потока выделяется только одна копия этой структуры, поэтому приложение должно скопировать все необходимые сведения перед выполнением других вызовов функций Windows Sockets.

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

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

WSAsyncGetServByPort

Функции Winsock

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

getservbyname