getservbyname 函数 (winsock.h)
getservbyname 函数检索与服务名称和协议对应的服务信息。
语法
servent * getservbyname(
[in] const char *name,
[in] const char *proto
);
参数
[in] name
指向 以 null 结尾的服务名称的指针。
[in] proto
指向 以 null 结尾的协议名称的指针。 如果此指针为 NULL,则 getservbyname 函数返回第一个服务条目,其中 name 与 servent 结构的 s_name 成员或 servicent 结构的 s_aliases 成员匹配。 否则, getservbyname 将匹配 名称和proto。
返回值
如果未发生错误, getservbyname 将返回指向 servent 结构的指针。 否则,它将返回 一个 null 指针,并且可以通过调用 WSAGetLastError 来检索特定的错误号。
错误代码 | 含义 |
---|---|
在使用此函数之前,必须成功调用 WSAStartup 。 | |
网络子系统发生故障。 | |
找不到权威应答服务。 | |
找不到非授权服务或服务器故障。 | |
不可恢复的错误,即无法访问服务数据库。 | |
有效名称,没有请求类型的数据记录。 | |
阻止 Windows 套接字 1.1 调用正在进行,或者服务提供商仍在处理回调函数。 | |
阻止的 Windows 套接字 1.1 调用已通过 WSACancelBlockingCall 取消。 |
注解
getservbyname 函数返回指向 servicent 结构的指针,其中包含与 name 参数中的字符串匹配的名称 () 和服务编号。 所有字符串都以 null 结尾。
返回的指针指向 Windows 套接字库分配的服务结构。 应用程序不得尝试修改此结构或释放其任何组件。 此外,每个线程只分配此结构的一个副本,因此应用程序应在发出任何其他 Windows 套接字函数调用之前复制所需的任何信息。
Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。
Windows 8.1和Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1,Windows Vista [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winsock.h (包括 Winsock2.h) |
Library | Ws2_32.lib |
DLL | Ws2_32.dll |