| RMVL 2.4.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
Public 成员函数 | Protected 属性 | 所有成员列表
rm::StreamSocket类 参考
数据 IO 与通信模块 » 网络通信

由 rm::Acceptor 或 rm::Connector 建立的流式 Socket 会话 更多...

`#include <rmvl/io/socket.hpp>`

类 rm::StreamSocket 继承关系图:
rm::StreamSocket 的协作图:

## Public 成员函数
bool | invalid () const noexcept
| 会话是否失效
template<typename SockOpt>
void | setOption (const SockOpt &opt)
| 设置 Socket 选项
Endpoint | endpoint () const
| 获取绑定的端点
std::string | read () noexcept
| 同步读取已连接的 Socket 中的数据（阻塞）
bool | write (std::string_view data) noexcept
| 同步写入数据到已连接的 Socket 中（阻塞）
void | close () noexcept
| 手动关闭 Socket 会话，一般情况无需调用，除非需要提前释放资源

## Protected 属性
SocketFd | _fd {INVALID_SOCKET_FD}
| 会话文件描述符

## 详细描述

由 rm::Acceptor 或 rm::Connector 建立的流式 Socket 会话

## 成员函数说明

## ◆ close()

void rm::StreamSocket::close | ( |  | ) |
| noexcept

手动关闭 Socket 会话，一般情况无需调用，除非需要提前释放资源

函数调用图:

## ◆ endpoint()

Endpoint rm::StreamSocket::endpoint | ( |  | ) | const

获取绑定的端点

## ◆ invalid()

bool rm::StreamSocket::invalid | ( |  | ) | const
| inline nodiscard noexcept

会话是否失效

## ◆ read()

std::string rm::StreamSocket::read | ( |  | ) |
| noexcept

同步读取已连接的 Socket 中的数据（阻塞）

// 使用示例
auto str = socket.read();
rm::str
定义 str.hpp:19

返回
  使用 std::string 存储的读取到的数据

## ◆ setOption()

template<typename SockOpt>

void rm::StreamSocket::setOption | ( | const SockOpt & | opt | ) |

设置 Socket 选项

参数

  [in] | opt | Socket 选项

## ◆ write()

bool rm::StreamSocket::write | ( | std::string_view | data | ) |
| noexcept

同步写入数据到已连接的 Socket 中（阻塞）

// 使用示例
bool success = socket.write("Hello, World!");

参数

  [in] | data | 待写入的数据

返回
  是否写入成功

函数调用图:

## 类成员变量说明

## ◆ _fd

SocketFd rm::StreamSocket::_fd {INVALID_SOCKET_FD}
| protected

会话文件描述符