RMVL  2.3.0
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::async::Socket类 参考

Socket 异步会话层 更多...

#include <rmvl/io/socket.hpp>

类 rm::async::Socket 继承关系图:
rm::async::Socket 的协作图:

class  SocketReadAwaiter
 Socket 异步读等待器 更多...
 
class  SocketWriteAwaiter
 Socket 异步写等待器 更多...
 

Public 成员函数

 Socket (IOContext &io_context, SocketFd fd)
 建立 Socket 异步会话
 
 Socket (const Socket &)=delete
 
 Socket (Socket &&other) noexcept=default
 
Socketoperator= (const Socket &)=delete
 
Socketoperator= (Socket &&other)=default
 
 ~Socket ()=default
 
SocketReadAwaiter read ()
 异步读取已连接的 Socket 中的数据
 
SocketWriteAwaiter write (std::string_view data)
 异步写入数据到已连接的 Socket
 
- Public 成员函数 继承自 rm::Socket
 Socket (SocketFd fd)
 建立 Socket 会话
 
 Socket (const Socket &)=delete
 
 Socket (Socket &&other) noexcept
 
Socketoperator= (const Socket &)=delete
 
Socketoperator= (Socket &&other) noexcept
 
bool invalid () const noexcept
 会话是否失效
 
 ~Socket ()
 
std::string read () noexcept
 同步读取已连接的 Socket 中的数据(阻塞)
 
bool write (std::string_view data) noexcept
 同步写入数据到已连接的 Socket 中(阻塞)
 

额外继承的成员函数

- Protected 属性 继承自 rm::Socket
SocketFd _fd {INVALID_SOCKET_FD}
 会话文件描述符
 

详细描述

Socket 异步会话层

构造及析构函数说明

◆ Socket() [1/3]

rm::async::Socket::Socket ( IOContext & io_context,
SocketFd fd )

建立 Socket 异步会话

参数
[in]io_context异步 I/O 执行上下文
[in]fd会话文件描述符,一般是已建立会话的 Socket 描述符

◆ Socket() [2/3]

rm::async::Socket::Socket ( const Socket & )
delete
函数调用图:

◆ Socket() [3/3]

rm::async::Socket::Socket ( Socket && other)
defaultnoexcept
函数调用图:

◆ ~Socket()

rm::async::Socket::~Socket ( )
default

成员函数说明

◆ operator=() [1/2]

Socket & rm::async::Socket::operator= ( const Socket & )
delete
函数调用图:

◆ operator=() [2/2]

Socket & rm::async::Socket::operator= ( Socket && other)
default
函数调用图:

◆ read()

SocketReadAwaiter rm::async::Socket::read ( )
inline

异步读取已连接的 Socket 中的数据

// 使用示例
auto str = co_await socket.read();
定义 str.hpp:19
返回
使用 std::string 存储的读取到的数据

◆ write()

SocketWriteAwaiter rm::async::Socket::write ( std::string_view data)
inline

异步写入数据到已连接的 Socket

// 使用示例
bool success = co_await socket.write("Hello, World!");
参数
[in]data待写入的数据
返回
是否写入成功

该类的文档由以下文件生成: