WebRTC Native M96 基础Base模块介绍之网络相关的封装

rtc_base IPAddress

与版本无关的 IP 地址类,包装了 in_addr 和 in6_addr 的联合。

对IP地址的封装IPAddress和InterfaceAddress,IPAddress重载了==、!=、<和>、地址支持string(std::string ToString() const;)、sensitive_string(std::string ToSensitiveString() const;)和uint32_t(AF_INET)(int family() const)类型输出,还支持IPV4转IPV6类型(IPAddress AsIPv6Address() const;)。InterfaceAddress是IPAddress的子类(class RTC_EXPORT InterfaceAddress : public IPAddress),增加了IPv6属性(int ipv6_flags_;)

class RTC_EXPORT IPAddress {
 public:
  IPAddress() : family_(AF_UNSPEC) { ::memset(&u_, 0, sizeof(u_)); }

  explicit IPAddress(const in_addr& ip4) : family_(AF_INET) {
    memset(&u_, 0, sizeof(u_));
    u_.ip4 = ip4;
  }

  explicit IPAddress(const in6_addr& ip6) : family_(AF_INET6) { u_.ip6 = ip6; }

  explicit IPAddress(uint32_t ip_in_host_byte_order) : f

猜你喜欢

转载自blog.csdn.net/wangshubo1989/article/details/125433325