getservbyport 函数 (winsock2.h)
getservbyport 函数检索与端口和协议对应的服务信息。
语法
servent *WSAAPI getservbyport(
[in] int port,
[in] const char *proto
);
参数
[in] port
服务端口,按网络字节顺序排列。
[in] proto
指向协议名称的可选指针。 如果为 null,则 getservbyport 将返回端口与 servent 结构的s_port匹配的第一个服务条目。 否则, getservbyport 将同时匹配 端口 和 proto 参数。
返回值
如果未发生错误, getservbyport 将返回指向 servent 结构的指针。 否则,它将返回一个 null 指针,并且可以通过调用 WSAGetLastError 来检索特定的错误号。
错误代码 | 含义 |
---|---|
在使用此函数之前,必须成功调用 WSAStartup 。 | |
网络子系统失败。 | |
找不到权威应答服务。 | |
找不到非授权服务,或服务器故障。 | |
不可恢复的错误,无法访问服务数据库。 | |
有效名称,没有请求类型的数据记录。 | |
阻止 Windows Sockets 1.1 调用正在进行,或者服务提供程序仍在处理回调函数。 | |
proto 参数不是用户地址空间的有效部分。 | |
阻止的 Windows 套接字 1.1 调用已通过 WSACancelBlockingCall 取消。 |
注解
getservbyport 函数返回指向 servent 结构的指针,就像在 getservbyname 函数中一样。
服务结构由 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 |
标头 | winsock2.h (包括 Winsock2.h) |
Library | Ws2_32.lib |
DLL | Ws2_32.dll |