POCO庫中文程式設計參考指南(5)Poco::Net::SocketAddress

鍾超發表於2012-04-15

POCO庫中文程式設計參考指南(5)Poco::Net::SocketAddress

  • 作者:柳大·Poechant
  • 部落格:Blog.CSDN.net/Poechant
  • 郵箱:zhongchao.ustc#gmail.com (# -> @)
  • 日期:April 14th, 2012

1 列舉

最大地址長度,這個與Poco::Net::IPAddress中的定義可以類比,不過這裡指的是`struct sockaddr_in6

enum
{
    MAX_ADDRESS_LENGTH = 
#if defined(POCO_HAVE_IPv6)
        sizeof(struct sockaddr_in6)
#else
        sizeof(struct sockaddr_in)
#endif
        /// Maximum length in bytes of a socket address.
};

2 建構函式

建立一個 wildcard 的全 0 的 IPv4 的 socket 地址:

SocketAddress();

用 Poco::Net::IPAddress 和埠號建立 IPv4 或 IPv6 的 SocketAddress:

SocketAddress(const IPAddress& host, Poco::UInt16 port);

用 std::string 和埠號建立 IPv4 或 IPv6 的 SocketAddress:

SocketAddress(const std::string& host, Poco::UInt16 port);
SocketAddress(const std::string& host, const std::string& port);
explicit SocketAddress(const std::string& hostAndPort);

拷貝建構函式:

SocketAddress(const SocketAddress& addr);

原生方式構造 SocketAddress:

SocketAddress(const struct sockaddr* addr, poco_socklen_t length);

3 常用函式

swap:

void swap(SocketAddress& addr); 

獲取 IPAddress、埠和地址型別:

IPAddress host() const;
Poco::UInt16 port() const;
IPAddress::Family family() const;

獲取原生方式的地址長度、地址和地址族:

poco_socklen_t length() const;  
const struct sockaddr* addr() const;
int af() const;

toString:

std::string toString() const;

4 過載運算子

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

5 protected 函式

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

-

相關文章