WSANtohl 函数 (winsock2.h)

WSANtohl 函数将u_long从网络字节顺序转换为主机字节顺序。

语法

int WSAAPI WSANtohl(
  [in]  SOCKET s,
  [in]  u_long netlong,
  [out] u_long *lphostlong
);

参数

[in] s

标识套接字的描述符。

[in] netlong

以网络字节顺序表示的 32 位数字。

[out] lphostlong

指向 32 位数字的指针,用于按主机字节顺序接收数字。

返回值

如果未发生错误, 则 WSANtohl 返回零。 否则,将返回值 SOCKET_ERROR,并且可以通过调用 WSAGetLastError 检索特定的错误代码。

错误代码 含义
WSANOTINITIALIZED
在使用此函数之前,必须成功调用 WSAStartup
WSAENETDOWN
网络子系统发生故障。
WSAENOTSOCK
:描述符不是套接字。
WSAEFAULT
lphostlong 参数为 NULL,或者指向的地址未完全包含在用户地址空间的有效部分。

注解

WSANtohl 函数采用网络字节顺序为 32 位数字,并在 lphostlong 参数指向的 32 位数字中以主机字节顺序返回 32 位数字。 在 s 参数中传递的套接字用于根据与套接字关联的 Winsock 目录协议条目确定所需的网络字节顺序。 此功能支持使用不同网络字节顺序的 Winsock 提供程序。

如果套接字适用于AF_INET或AF_INET6地址系列,则 WSANtohl 函数可用于将网络字节顺序中的 IPv4 地址转换为主机字节顺序中的 IPv4 地址。 此函数不执行任何检查来确定 netlong 参数是否为有效的 IPv4 地址。

WSANtohl 函数要求 Winsock DLL 之前已通过成功调用 WSAStartup 函数加载。 若要与 AF_INET 或 AF_INET6 系列一起使用, ntohl 函数不需要加载 Winsock DLL。

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
标头 winsock2.h
Library Ws2_32.lib
DLL Ws2_32.dll

另请参阅

InetNtop

WSAHtonl

WSAHtons

WSANtohs

Winsock 函数

Winsock 参考

htonl

htons

inet_addr

inet_ntoa

ntohl

ntohs