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::GetAddrInfoList
和 CSocketAddr::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::GetAddrInfoList
和 CSocketAddr::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::GetAddrInfoList
和 CSocketAddr::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 结构。