POCO库中文编程参考指南(5)Poco::Net::SocketAddress

时间:2022-09-01 23:21:40

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

-