本文共 2687 字,大约阅读时间需要 8 分钟。
in_addr和in6_addr数据结构表示IPv4和IPv6地址。MAX_ADDRESS_LENGTH宏定义了地址的最大长度:#if defined(POCO_HAVE_IPv6) sizeof(struct in6_addr)#else sizeof(struct in_addr)#endif
Family枚举类来表示地址类型:enum Family { IPv4, IPv6}IPAddress();
IPAddress(const IPAddress& addr);
explicit IPAddress(Family family);
explicit IPAddress(const std::string& addr);
IPAddress(const std::string& addr, Family family);
in_addr或in6_addr数据结构创建IP地址,并提供字符串长度:IPAddress(const void* addr, poco_socklen_t length);
in_addr或in6_addr数据结构创建IP地址,并提供字符串长度和IPv6的作用域:IPAddress(const void* addr, poco_socklen_t length, Poco::UInt32 scope);
IPAddress& operator = (const IPAddress& addr);
bool operator == (const IPAddress& addr) const;bool operator != (const IPAddress& addr) const;bool operator < (const IPAddress& addr) const;bool operator <= (const IPAddress& addr) const;bool operator > (const IPAddress& addr) const;bool operator >= (const IPAddress& addr) const;
void swap(IPAddress& address);
Family family() const;
Poco::UInt32 scope() const;
std::string toString() const;
poco_socklen_t length() const;
const void* addr() const;
int af() const;
void mask(const IPAddress& mask);void mask(const IPAddress& mask, const IPAddress& set);
static IPAddress parse(const std::string& addr);
static bool tryParse(const std::string& addr, IPAddress& result);
static IPAddress wildcard(Family family = IPv4);
static IPAddress broadcast();
bool isWildcard() const;
bool isBroadcast() const;
bool isLoopback() const;
bool isMulticast() const;
bool isUnicast() const;
bool isLinkLocal() const;
bool isSiteLocal() const;
bool isIPv4Compatible() const;
bool isIPv4Mapped() const;
bool isWellKnownMC() const;
bool isLinkLocalMC() const;
bool isSiteLocalMC() const;
bool isOrgLocalMC() const;
bool isGlobalMC() const;
protected: void init(IPAddressImpl* pImpl);
以上内容为POCO库POCO::Net::IPAddress类的完整编程参考指南。
转载地址:http://tzxfk.baihongyu.com/