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


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

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

Синтаксис

servent *WSAAPI getservbyname(
  [in] const char *name,
  [in] const char *proto
);

Параметры

[in] name

Указатель на имя службы, завершаемое значением NULL.

[in] proto

Указатель на имя протокола, завершаемого значением NULL. Если этот указатель имеет значение NULL, функция getservbyname возвращает первую запись службы, в которой name соответствует s_nameчлену обслуживаемой структуры или элементу s_aliasesобслуживаемой структуры. В противном случае getservbyname соответствует имени и прототипу.

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

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

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

Комментарии

Функция getservbyname возвращает указатель на обслуживающую структуру, содержащую имена и номера службы, соответствующие строке в параметре name . Все строки заканчиваются null.

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

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

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

WSAsyncGetServByName

Функции Winsock

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

getservbyport