首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

POCO 庫中 SocketAddress 類詳解:網絡地址封裝與操作

     編輯:關於C++

Poco::Net::SocketAddress:統一的網絡地址表示

SocketAddress 封裝了 IP 地址與端口號,支持 IPv4 和 IPv6,提供了豐富的構造方式、訪問方法及字符串轉換功能。

1. 枚舉常量

enum {
    MAX_ADDRESS_LENGTH = 
#if defined(POCO_HAVE_IPv6)
    sizeof(struct sockaddr_in6)
#else
    sizeof(struct sockaddr_in)
#endif
    // 最大 Socket 地址長度(字節)
};

2. 構造函數

  • SocketAddress():創建一個全零的 IPv4 通配地址(wildcard)。
  • SocketAddress(const IPAddress& host, Poco::UInt16 port):從 IPAddress 和端口構造。
  • SocketAddress(const std::string& host, Poco::UInt16 port):從主機字符串和端口構造。
  • SocketAddress(const std::string& host, const std::string& port):主機與端口均為字符串。
  • explicit SocketAddress(const std::string& hostAndPort):從 "host:port" 格式字符串解析。
  • SocketAddress(const SocketAddress& addr):拷貝構造。
  • SocketAddress(const struct sockaddr* addr, poco_socklen_t length):從原生 sockaddr 結構構造。

3. 常用成員函數

  • void swap(SocketAddress& addr):交換地址。
  • IPAddress host() const:獲取 IP 地址。
  • Poco::UInt16 port() const:獲取端口號。
  • IPAddress::Family family() const:獲取地址族(IPv4/IPv6)。
  • poco_socklen_t length() const:獲取原生地址長度。
  • const struct sockaddr* addr() const:獲取原生 sockaddr 指針。
  • int af() const:獲取地址族常量(AF_INET/AF_INET6)。
  • std::string toString() const:轉為 "host:port" 字符串。

4. 重載運算符

  • bool operator == (const SocketAddress& addr) const
  • bool operator != (const SocketAddress& addr) const

5. 受保護方法

  • void init(const IPAddress& host, Poco::UInt16 port)
  • void init(const std::string& host, Poco::UInt16 port)
  • Poco::UInt16 resolveService(const std::string& service):解析服務名獲取端口號。

轉載請注明來自柳大的 CSDN 博客:Blog.CSDN.net/Poechant

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved