| RMVL 2.3.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
概念 | 类 | 类型定义 | 枚举 | 函数 | 变量
网络通信
数据 IO 与通信模块

提供跨平台的同步异步 Socket 通信、HTTP 请求、HTTP Web 后端框架功能 更多...

网络通信 的协作图:

## 概念
concept | rm::IpProtocol
| IP 协议
concept | rm::LocalProtocol
| 本地协议

## 类
struct | rm::URLParseInfo
| URL 解析结果 更多...
struct | rm::Request
| HTTP 请求 更多...
struct | rm::Response
| HTTP 响应 更多...
class | rm::async::Webapp
| Web 应用程序框架 更多...
struct | rm::ipc
| 进程间通信协议族 更多...
struct | rm::ip
| IP 协议族 更多...
class | rm::Endpoint
| 端点 更多...
class | rm::Socket
| Socket 会话层 更多...
class | rm::Acceptor
| Socket 接受器 更多...
class | rm::Connector
| Socket 连接器 更多...
class | rm::async::Socket
| Socket 异步会话层 更多...
class | rm::async::Acceptor
| 异步 Socket 接受器 更多...
class | rm::async::Connector
| 异步 Socket 连接器 更多...

## 类型定义
using | rm::ResponseMiddleware = std::function<void(Response &)>
| 响应中间件类型
using | rm::SocketFd = int

## 枚举
enum class | rm::HTTPMethod : uint8_t { rm::HTTPMethod::Get , rm::HTTPMethod::Post , rm::HTTPMethod::Put , rm::HTTPMethod::Delete , rm::HTTPMethod::Patch , rm::HTTPMethod::Head , rm::HTTPMethod::Options , rm::HTTPMethod::Trace , rm::HTTPMethod::Connect , rm::HTTPMethod::Unknown }
| HTTP 请求方法 更多...

## 函数
URLParseInfo | rm::parseURL (std::string_view url)
| 解析 URL
std::tuple< std::string, bool > | rm::parseDNS (std::string_view hostname)
| 域名解析
void | rm::cors (Response &res)
| 跨域资源共享 CORS 中间件，为响应添加 CORS 头部信息
Response | rm::requests::request (HTTPMethod method, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={}, std::string_view body="")
| 发出同步 HTTP 请求
Response | rm::requests::get (std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出同步 GET 请求
Response | rm::requests::post (std::string_view url, std::string_view body, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出同步 POST 请求
Response | rm::requests::del (std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出同步 DELETE 请求
Task< Response > | rm::async::requests::request (IOContext &io_context, HTTPMethod method, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={}, std::string_view body="")
| 发出异步 HTTP 请求
Task< Response > | rm::async::requests::get (IOContext &io_context, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出异步 GET 请求
Task< Response > | rm::async::requests::post (IOContext &io_context, std::string_view url, std::string_view body, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出异步 POST 请求
Task< Response > | rm::async::requests::del (IOContext &io_context, std::string_view url, const std::vector< std::string > &querys={}, const std::unordered_map< std::string, std::string > &heads={})
| 发出异步 DELETE 请求

## 变量
constexpr SocketFd | rm::INVALID_SOCKET_FD = -1

## 详细描述

提供跨平台的同步异步 Socket 通信、HTTP 请求、HTTP Web 后端框架功能

## 类型定义说明

## ◆ ResponseMiddleware

using rm::ResponseMiddleware = std::function<void(Response &)>

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

响应中间件类型

## ◆ SocketFd

using rm::SocketFd = int

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

## 枚举类型说明

## ◆ HTTPMethod

enum class rm::HTTPMethod : uint8_t
| strong

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

HTTP 请求方法

枚举值
Get | 从服务器获取资源，用于请求数据而不对数据进行更改
Post | 向服务器发送数据，用于提交表单数据或上传文件
Put | 向服务器发送数据，一般用于更新现有资源
Delete | 从服务器删除指定的资源，请求中包含要删除的资源标识符
Patch | 对资源进行部分修改，与 `Put` 类似，但 `Patch` 只更改部分数据而不是替换整个资源
Head | 类似于 `Get`，但服务器只返回响应的头部，不返回实际数据，常用于检查资源的元数据
Options | 返回服务器支持的 HTTP 方法
Trace | 回显服务器收到的请求，主要用于诊断
Connect | 建立一个到服务器的隧道，通常用于 HTTPS 连接
Unknown | 未知方法

## 函数说明

## ◆ cors()

void rm::cors | ( | Response & | res | ) |

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

跨域资源共享 CORS 中间件，为响应添加 CORS 头部信息

// 直接操作 Response 对象
cors(res);
// 或在 Web 应用程序框架中使用
auto app = async::Webapp(io_context);
app.use(cors);
rm::async::Webapp
Web 应用程序框架
定义 netapp.hpp:325
rm::cors
void cors(Response &res)
跨域资源共享 CORS 中间件，为响应添加 CORS 头部信息

## ◆ del() [1/2]

Task< Response > rm::async::requests::del | ( | IOContext & | io_context,
|  | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出异步 DELETE 请求

参数

  [in] | io_context | 异步 I/O 执行上下文
  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  rm::async::Task<Response>

## ◆ del() [2/2]

Response rm::requests::del | ( | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出同步 DELETE 请求

参数

  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  Response 响应报文

## ◆ get() [1/2]

Task< Response > rm::async::requests::get | ( | IOContext & | io_context,
|  | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出异步 GET 请求

参数

  [in] | io_context | 异步 I/O 执行上下文
  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  rm::async::Task<Response>

## ◆ get() [2/2]

Response rm::requests::get | ( | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出同步 GET 请求

参数

  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  Response 响应报文

## ◆ parseDNS()

std::tuple< std::string, bool > rm::parseDNS | ( | std::string_view | hostname | ) |

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

域名解析

参数

  [in] | hostname | 域名

返回值

  ip | IP 地址
  isv6 | 是否为 IPv6 地址

## ◆ parseURL()

URLParseInfo rm::parseURL | ( | std::string_view | url | ) |

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

解析 URL

参数

  [in] | url | 统一资源定位符，例如 `http://example.com:8080/path`

返回值

  scheme | 协议部分，例如 `http` 或 `https`
  hostname | 域名部分，例如 `example.com`
  port | 端口号，默认为 80 (HTTP) 或 443 (HTTPS)
  path | 路径部分，例如 `/path/to/resource`
  querys | 以 `std::vector` 存储的查询参数部分，例如 `[key=value, key2=value2]`

## ◆ post() [1/2]

Task< Response > rm::async::requests::post | ( | IOContext & | io_context,
|  | std::string_view | url,
|  | std::string_view | body,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出异步 POST 请求

参数

  [in] | io_context | 异步 I/O 执行上下文
  [in] | url | 请求的 URL
  [in] | body | 请求体
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  rm::async::Task<Response>

## ◆ post() [2/2]

Response rm::requests::post | ( | std::string_view | url,
|  | std::string_view | body,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {} )
| inline

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

发出同步 POST 请求

参数

  [in] | url | 请求的 URL
  [in] | body | 请求体
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表

返回
  Response 响应报文

## ◆ request() [1/2]

Task< Response > rm::async::requests::request | ( | IOContext & | io_context,
|  | HTTPMethod | method,
|  | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {},
|  | std::string_view | body = "" )

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

发出异步 HTTP 请求

参数

  [in] | io_context | 异步 I/O 执行上下文
  [in] | method | 请求方法
  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 参数列表
  [in] | heads | 可选的请求头列表
  [in] | body | 可选的请求体

返回
  响应报文的异步任务

## ◆ request() [2/2]

Response rm::requests::request | ( | HTTPMethod | method,
|  | std::string_view | url,
|  | const std::vector< std::string > & | querys = {},
|  | const std::unordered_map< std::string, std::string > & | heads = {},
|  | std::string_view | body = "" )

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

发出同步 HTTP 请求

参数

  [in] | method | 请求方法
  [in] | url | 请求的 URL
  [in] | querys | 可选的 URL 查询参数列表
  [in] | heads | 可选的请求头列表
  [in] | body | 可选的请求体

返回
  响应报文

## 变量说明

## ◆ INVALID_SOCKET_FD

SocketFd rm::INVALID_SOCKET_FD = -1
| constexpr

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