cppnet::Socket
Status
- 这是一个枚举类,定义了套接字的不同状态,包括
kUninit(未初始化)、kInit(已初始化)和kClosed(已关闭)。
Socket()
- 参数:无
- 返回值:无
- 作用:构造一个默认的 Socket 对象。
Socket(int fd)
- 参数:
fd:套接字文件描述符。
- 返回值:无
- 作用:构造一个使用给定文件描述符的 Socket 对象。
int Init()
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:初始化套接字。
int InitUdp()
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:初始化 UDP 套接字。
int Connect(Address &addr)
- 参数:
addr:服务器地址对象。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:尝试连接到服务器。
int Bind(Address &addr)
- 参数:
addr:服务器地址对象。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:绑定套接字到指定地址。
Socket Accept(Address &addr)
- 参数:
addr:服务器地址对象。
- 返回值:
Socket类型,新接受的套接字对象。 - 作用:接受连接并返回新的套接字对象。
int Listen(int max_connect_queue)
- 参数:
max_connect_queue:最大连接队列长度。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:监听套接字上的连接请求。
int Close()
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:关闭套接字。
int Read(std::string &buf, size_t len, bool complete = false)
- 参数:
buf:用于存储读取数据的字符串引用。len:要读取的字节长度。complete:如果为真,则必须读取len个字节的数据。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从套接字读取数据到字符串中。
int Read(void *buf, size_t len, bool complete = false)
- 参数:
buf:用于存储读取数据的缓冲区指针。len:要读取的字节长度。complete:如果为真,则必须读取len个字节的数据。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从套接字读取数据到缓冲区中。
int ReadUntil(std::string &buf, const std::string &delim)
- 参数:
buf:用于存储读取数据的字符串引用。delim:分隔符字符串。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从套接字读取数据直到遇到分隔符(包括分隔符)。
int ReadPeek(std::string &buf, size_t len)
- 参数:
buf:用于存储读取数据的字符串引用。len:要读取的字节长度。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从套接字读取数据但不从套接字中移除数据。
int ReadUdp(std::string &buf, size_t len, Address &addr)
- 参数:
buf:用于存储读取数据的字符串引用。len:要读取的字节长度。addr:用于存储 UDP 来源地址的对象引用。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从 UDP 套接字读取数据并获取来源地址。
int ReadUdp(void *buf, size_t len, Address &addr)
- 参数:
buf:用于存储读取数据的缓冲区指针。len:要读取的字节长度。addr:用于存储 UDP 来源地址的对象引用。
- 返回值:
int类型,实际读取的字节长度。 - 作用:从 UDP 套接字读取数据并获取来源地址。
int Write(const std::string &buf)
- 参数:
buf:要写入的数据字符串。
- 返回值:
int类型,实际写入的字节长度。 - 作用:将字符串数据写入套接字。
int Write(const void *buf, size_t len)
- 参数:
buf:要写入的数据缓冲区指针。len:要写入的字节长度。
- 返回值:
int类型,实际写入的字节长度。 - 作用:将缓冲区中的数据写入套接字。
int WriteUdp(const std::string &buf, Address &addr)
- 参数:
buf:要写入的数据字符串。addr:UDP 目标地址对象。
- 返回值:
int类型,实际写入的字节长度。 - 作用:将字符串数据写入 UDP 套接字并指定目标地址。
int WriteUdp(const void *buf, size_t len, Address &addr)
- 参数:
buf:要写入的数据缓冲区指针。len:要写入的字节长度。addr:UDP 目标地址对象。
- 返回值:
int类型,实际写入的字节长度。 - 作用:将缓冲区中的数据写入 UDP 套接字并指定目标地址。
int SetNoBlock() const
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:设置套接字为非阻塞模式。
int SetBlock() const
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:设置套接字为阻塞模式。
int SetReuseAddr() const
- 参数:无
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:设置套接字可重用地址。
int SetReadTimeout(int timeout_sec, int timeout_usec) const
- 参数:
timeout_sec:超时时间的秒数。timeout_usec:超时时间的微秒数。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:设置套接字的读取超时时间。
int SetWriteTimeout(int timeout_sec, int timeout_usec) const
- 参数:
timeout_sec:超时时间的秒数。timeout_usec:超时时间的微秒数。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:设置套接字的写入超时时间。
int SetSockOpt(int level, int optname, const void *optval, size_t optlen) const
- 参数:
level:套接字选项级别。optname:套接字选项名称。optval:套接字选项值的指针。optlen:套接字选项值的长度。
- 返回值:
int类型,0 表示成功,其他表示失败。 - 作用:设置套接字选项。
int GetAddr(Address &addr) const
- 参数:
addr:用于存储套接字地址的对象引用。
- 返回值:
int类型,0 表示成功,-1 表示失败。 - 作用:获取套接字的地址并存储在给定的地址对象中。
Address GetAddr() const
- 参数:无
- 返回值:
Address类型,套接字的地址对象。 - 作用:获取套接字的地址对象。
static inline std::string err_msg()
- 参数:无
- 返回值:
std::string类型,系统错误消息。 - 作用:获取系统错误消息字符串。
static inline int err_no()
- 参数:无
- 返回值:
int类型,系统错误编号。 - 作用:获取系统错误编号。
inline int fd() const
- 参数:无
- 返回值:
int类型,套接字文件描述符。 - 作用:获取套接字的文件描述符。
inline Status status() const
- 参数:无
- 返回值:
Status类型,套接字的状态枚举值。 - 作用:获取套接字的状态。
bool operator==(const Socket &rhs) const
- 参数:
rhs:另一个套接字对象。
- 返回值:
bool类型,判断两个套接字是否相等。 - 作用:比较两个套接字对象是否相等。
protected inline int IORead(void *buf, size_t len, int flags = 0)
- 参数:
buf:用于存储读取数据的缓冲区指针。len:要读取的字节长度。flags:读取标志,默认为 0。
- 返回值:
int类型,实际读取的字节长度。 - 作用:内部使用的读取函数,默认使用
::recv进行读取。
protected inline int IOWrite(const void *buf, size_t len, int flags = 0)
- 参数:
buf:要写入的数据缓冲区指针。len:要写入的字节长度。flags:写入标志,默认为 0。
- 返回值:
int类型,实际写入的字节长度。 - 作用:内部使用的写入函数,默认使用
::send进行写入。