CSocketAddr 类

此类提供将主机名转换为主机地址的方法,支持 IPv4 和 IPV6 格式。

语法

class CSocketAddr

成员

公共构造函数

名称 描述
CSocketAddr::CSocketAddr 构造函数。

公共方法

名称 描述
CSocketAddr::FindAddr 调用此方法可将提供的主机名转换为主机地址。
CSocketAddr::FindINET4Addr 调用此方法可将 IPv4 主机名转换为主机地址。
CSocketAddr::FindINET6Addr 调用此方法可将 IPv6 主机名转换为主机地址。
CSocketAddr::GetAddrInfo 调用此方法可返回指向 addrinfo 列表中特定元素的指针。
CSocketAddr::GetAddrInfoList 调用此方法可返回指向 addrinfo 列表的指针。

注解

此类提供了一种与 IP 版本无关的方法,用于查找与库中的 Windows 套接字 API 函数和套接字包装器配合使用的网络地址。

用于查找网络地址的此类成员使用 Win32 API 函数 getaddrinfo。 调用函数的 ANSI 或 UNICODE 版本,具体取决于代码是针对 ANSI 还是 UNICODE 进行编译。

此类支持 IPv4 和 IPv6 网络地址。

要求

标头:atlsocket.h

CSocketAddr::CSocketAddr

构造函数。

CSocketAddr();

备注

创建一个新的 CSocketAddr 对象并初始化包含有关主机的响应信息的链接列表。

CSocketAddr::FindAddr

调用此方法可将提供的主机名转换为主机地址。

int FindAddr(
    const TCHAR *szHost,
    const TCHAR *szPortOrServiceName,
    int flags,
    int addr_family,
    int sock_type,
    int ai_proto);

int FindAddr(
    const TCHAR *szHost,
    int nPortNo,
    int flags,
    int addr_family,
    int sock_type,
    int ai_proto);

参数

szHost
主机名或点式 IP 地址。

szPortOrServiceName
主机上的服务端口号或名称。

nPortNo
端口号。

flags
0 或组合 AI_PASSIVE、AI_CANONNAME 或 AI_NUMERICHOST。

addr_family
地址系列(例如 PF_INET)。

sock_type
套接字类型(例如 SOCK_STREAM)。

ai_proto
协议(例如 IPPROTO_IP 或 IPPROTO_IPV6)。

返回值

如果地址计算成功,则返回零。 如果失败,则返回非零 Windows 套接字错误代码。 如果成功,计算地址将存储在可以使用 CSocketAddr::GetAddrInfoListCSocketAddr::GetAddrInfo 引用的链接列表中。

备注

主机名参数可能采用 IPv4 或 IPv6 格式。 此方法调用 Win32 API 函数 getaddrinfo 来执行转换。

CSocketAddr::FindINET4Addr

调用此方法可将 IPv4 主机名转换为主机地址。

int FindINET4Addr(
    const TCHAR *szHost,
    int nPortNo,
    int flags = 0,
    int sock_type = SOCK_STREAM);

参数

szHost
主机名或点式 IP 地址。

nPortNo
端口号。

flags
0 或组合 AI_PASSIVE、AI_CANONNAME 或 AI_NUMERICHOST。

sock_type
套接字类型(例如 SOCK_STREAM)。

返回值

如果地址计算成功,则返回零。 如果失败,则返回非零 Windows 套接字错误代码。 如果成功,计算地址将存储在可以使用 CSocketAddr::GetAddrInfoListCSocketAddr::GetAddrInfo 引用的链接列表中。

备注

此方法调用 Win32 API 函数 getaddrinfo 来执行转换。

CSocketAddr::FindINET6Addr

调用此方法可将 IPv6 主机名转换为主机地址。

int FindINET6Addr(
    const TCHAR *szHost,
    int nPortNo,
    int flags = 0,
    int sock_type = SOCK_STREAM);

参数

szHost
主机名或点式 IP 地址。

nPortNo
端口号。

flags
0 或组合 AI_PASSIVE、AI_CANONNAME 或 AI_NUMERICHOST。

sock_type
套接字类型(例如 SOCK_STREAM)。

返回值

如果地址计算成功,则返回零。 如果失败,则返回非零 Windows 套接字错误代码。 如果成功,计算地址将存储在可以使用 CSocketAddr::GetAddrInfoListCSocketAddr::GetAddrInfo 引用的链接列表中。

备注

此方法调用 Win32 API 函数 getaddrinfo 来执行转换。

CSocketAddr::GetAddrInfo

调用此方法可返回指向 addrinfo 列表中特定元素的指针。

addrinfo* const GetAddrInfo(int nIndex = 0) const;

参数

nIndex
addrinfo 列表中的特定元素的引用。

返回值

返回指向链接列表中的 nIndex 引用的 addrinfo 结构的指针,列表中包含有关主机的响应信息。

CSocketAddr::GetAddrInfoList

调用此方法可返回指向 addrinfo 列表的指针。

addrinfo* const GetAddrInfoList() const;

返回值

指向包含有关主机的响应信息的一个或多个 addrinfo 结构的链接列表的指针。 有关详细信息,请参阅 addrinfo 结构

另请参阅

类概述