POCO庫中文程式設計參考指南(4)Poco::Net::IPAddress
POCO庫中文程式設計參考指南(4)Poco::Net::IPAddress
- 作者:柳大·Poechant
- 部落格:Blog.CSDN.net/Poechant
- 郵箱:zhongchao.ustc#gmail.com (# -> @)
- 日期:April 14th, 2012
1 Poco::Net::IPAddress
地址最大長度,IPv4 是 in_addr 的長度,IPv6 是 in6_addr 的長度
enum
{
MAX_ADDRESS_LENGTH =
#if defined(POCO_HAVE_IPv6)
sizeof(struct in6_addr)
#else
sizeof(struct in_addr)
#endif
/// Maximum length in bytes of a socket address.
};
1.1 IPv4 or IPv6?
POCO 用一個列舉類來表示:
enum Family
/// Possible address families for IP addresses.
{
IPv4,
IPv6
};
1.2 建構函式
返回一個全 0 的 IP 地址:
IPAddress();
拷貝建構函式:
IPAddress(const IPAddress& addr);
根據 IP 型別(IPv4 或 IPv6)建立一個全 0 的 IP 地址:
explicit IPAddress(Family family);
用字串型別的 IPv4 地址或 IPv6 地址來建立一個 IP 地址,其中 IPv4 是十進位制表示的,IPv6 是十六進位制表示的:
explicit IPAddress(const std::string& addr);
用字串型別的 IP 地址和指定的型別(IPv4 或 IPv6)建立一個 IP 地址,其中 IPv4 是十進位制表示的,IPv6 是十六進位制表示的:
IPAddress(const std::string& addr, Family family);
用原生 IP 地址 in_addr 或 in6_addr 資料結構和給定的字串長度,建立一個 IPAddress:
IPAddress(const void* addr, poco_socklen_t length);
用原生 IP 地址 in_addr 或 in6_addr 資料結構和給定的字串長度,建立一個 IPAddress,其中 scope 引數用於 IPv6,IPv4 會忽略這個引數:
IPAddress(const void* addr, poco_socklen_t length, Poco::UInt32 scope);
1.3 過載運算子
賦值運算子:
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;
1.4 常用操作
swap:
void swap(IPAddress& address);
獲取地址型別:
Family family() const;
IPv6 專用函式,返回 scope identifier,如果是 IPv4 則返回 0:
Poco::UInt32 scope() const;
toString,IPv4 則顯示“d.d.d.d”,IPv6 則
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();
1.5 IS 函式
1.5.1 是否是未初始化狀態
是否是未初始化的全零狀態(wildcard):
bool isWildcard() const;
1.5.2 是否是廣播/組播/單播
是否是廣播地址(全零),與 wildcard 的區別是 wildcard 是未經過初始化的。只有 IPv4 有廣播地址,IPv6 則返回 false。
bool isBroadcast() const;
是否是迴環地址:
- 對於 IPv4 是
127.0.0.1
- 對於 IPv6 是
::1
函式原型:
bool isLoopback() const;
是否是多播:
- 對於 IPv4 是
224.0.0.0
到239.255.255.255
範圍; - 對於 IPv6 是
FFxx:x:x:x:x:x:x:x
的範圍:
函式原型:
bool isMulticast() const;
是否是單播:
bool isUnicast() const;
1.5.2 其他函式
bool isLinkLocal() const;
bool isSiteLocal() const;
bool isIPv4Compatible() const;
bool isIPv4Mapped() const;
bool isWellKnownMC() const;
bool isNodeLocalMC() const;
bool isLinkLocalMC() const;
bool isSiteLocalMC() const;
bool isOrgLocalMC() const;
bool isGlobalMC() const;
1.5 protected 函式
protected:
void init(IPAddressImpl* pImpl);
-
轉載請註明來自柳大的CSDN部落格:Blog.CSDN.net/Poechant
-
相關文章
- POCO庫中文程式設計參考指南(9)Poco::Net::DNS程式設計DNS
- POCO庫中文程式設計參考指南(7)Poco::Net::DatagramSocket程式設計
- POCO庫中文程式設計參考指南(3)Poco::Net::Socket程式設計
- POCO庫中文程式設計參考指南(5)Poco::Net::SocketAddress程式設計
- POCO庫中文程式設計參考指南(6)Poco::Timestamp程式設計
- POCO庫中文程式設計參考指南(1)總覽程式設計
- POCO庫中文程式設計參考指南(2)基本資料型別(Poco/Types.h)程式設計資料型別
- POCO庫中文程式設計參考指南(11)如何使用Reactor框架?程式設計React框架
- POCO庫中文程式設計參考指南(8)豐富的Socket程式設計程式設計
- POCO庫中文程式設計參考指南(10)如何使用TCPServer框架?程式設計TCPServer框架
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- ASP.NET中Cookie程式設計簡明參考ASP.NETCookie程式設計
- PetaPoco .net 輕量級orm簡單實用教程ORM
- Airtest (poco 框架) 元素定位實戰AI框架
- poco節點關係大公開!
- C++跨平臺庫boost和Poco的編譯C++編譯
- C標準庫參考指南系列譯文(4)float.h
- Flask開發團隊Pocoo的內部編碼風格指南Flask
- 前端參考指南前端
- Hbase 中文參考指南 3.0 校對活動發車了~
- Android程式碼規範參考指南Android
- BOOST庫 學習參考完全開發指南
- C標準庫參考指南系列譯文
- PetaPoco在.net專案中的簡單使用(儲存過程篇)儲存過程
- WCF:傳輸EntityFramework 實體類的POCO 代理Framework
- Petapoco、Dapper和EF Core的異同APP
- Spring Boot 2.0.2 參考指南(通用的應用程式屬性 ②)中文文件Spring Boot
- Global.asa程式設計完全參考手冊程式設計
- VB.Net中文教程(7) Me參考值 (轉)
- Elasticsearch 參考指南(介紹)Elasticsearch
- POCO 1.6.0 釋出,C++ 網路工具包C++
- REDHAT AS4 kernel.sem設定參考Redhat
- DOJO API 中文參考手冊API
- MySQL8-中文參考-三-MySql
- 國外APP介面設計參考APP
- Poco框架實操:對節點可實施的操作框架
- Spring Boot 參考指南(Hazelcast)Spring BootAST
- Spring Boot參考指南中文版–Chapter1.Spring Boot中文文件Spring BootAPT