getprotobyname 函数 (winsock.h)

getprotobyname 函数检索与协议名称对应的协议信息。

语法

protoent * getprotobyname(
  [in] const char *name
);

参数

[in] name

指向以 null 结尾的协议名称的指针。

返回值

如果未发生错误, getprotobyname 将返回指向 protoent 的指针。 否则,它将返回一个 null 指针,并且可以通过调用 WSAGetLastError 来检索特定的错误号。

错误代码 含义
WSANOTINITIALIZED
在使用此函数之前,必须成功调用 WSAStartup
WSAENETDOWN
网络子系统发生故障。
WSAHOST_NOT_FOUND
找不到权威应答协议。
WSATRY_AGAIN
找不到非授权协议或服务器故障。
WSANO_RECOVERY
不可恢复的错误,协议数据库不可访问。
WSANO_DATA
有效名称,没有请求类型的数据记录。
WSAEINPROGRESS
阻止 Windows 套接字 1.1 调用正在进行,或者服务提供商仍在处理回调函数。
WSAEFAULT
name 参数不是用户地址空间的有效部分。
WSAEINTR
阻止的 Windows 套接字 1.1 调用已通过 WSACancelBlockingCall 取消。

注解

getprotobyname 函数返回指向原结构的指针,该结构包含名称 () 和与 name 参数中指定的协议对应的协议编号。 所有字符串都以 null 结尾。 原结构由 Windows 套接字库分配。 应用程序不得尝试修改此结构或释放其任何组件。 此外,与 hostent 一样,每个线程只分配此结构的一个副本,因此应用程序应在发出任何其他 Windows 套接字函数调用之前复制所需的任何信息。

Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。

Windows 8.1Windows 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

另请参阅

WSAAsyncGetProtoByName

Winsock 函数

Winsock 参考

getprotobynumber