目录
本项目由 岩禾溪 原创
项目实战+新特性用法介绍
开源代码+博客解析+视频讲解GitHub+CSDN+BiliBili同步更新,三个平台同名【岩禾溪】
GitHub代码链接: GitHub - YanHeXi/muduo_cpp20
项目讲解视频连接:岩禾溪的个人空间-岩禾溪个人主页-哔哩哔哩视频
你的关注是我更新的最大动力
InetAddress.ixx
export module InetAddress;
export import <string>;
export import <arpa/inet.h>;
import <netinet/in.h>;
export class InetAddress
{
public:
explicit InetAddress(uint16_t port = 0,
std::string_view ip = "127.0.0.1");
explicit InetAddress(const sockaddr_in &addr)
: addr_(addr) {}
std::string toIp() const;
std::string toIpPort() const;
uint16_t toPort() const { return ntohs(addr_.sin_port); }
const sockaddr_in *getSockAddr() const { return &addr_; }
void setSockAddr(const sockaddr_in &addr) { addr_ = addr; }
private:
sockaddr_in addr_;
};
模块介绍
该模块名为 InetAddress
,用于处理网络地址的表示和操作。它依赖于 C++20 中的模块特性进行导出和导入相关头文件,并提供网络地址的基本功能。
类 InetAddress
:
-
构造函数:
explicit InetAddress(uint16_t port = 0, std::string_view ip = "127.0.0.1");
:这是一个构造函数,用于创建一个 InetAddress 类的实例。它接受一个端口号和一个 IP 地址字符串,默认情况下端口号为0,IP地址为 "127.0.0.1"。
-
成员函数:
std::string toIp() const;
:返回当前InetAddress
实例的 IP 地址字符串表示。std::string toIpPort() const;
:返回当前InetAddress
实例的 IP 地址和端口号的组合字符串表示。uint16_t toPort() const;
:返回当前InetAddress
实例的端口号。const sockaddr_in *getSockAddr() const;
:返回指向当前InetAddress
实例中 sockaddr_in 结构的指针。void setSockAddr(const sockaddr_in &addr);
:设置当前InetAddress
实例中的 sockaddr_in 结构。
C++20 新特性内容:
- Modules (模块):
export module InetAddress;
和export/import
关键字用于导出和导入模块,将InetAddress
类的定义和相关的头文件进行模块化管理。 - std::string_view<