boost asio 缓冲区延迟分配

2023-11-29

异步操作。

现在我传递预分配的字节缓冲区,例如:

s.async_receive_from(
    boost::asio::buffer( preallocated_pointer, preallocated_size ),
    _remote_endpoint,
    boost::bind(...)
    );

是否可以对此调用和其他调用进行延迟分配?


惰性分配,或者当需要资源时进行分配,可以使用完成boost::asio::null_buffers. null_buffers可用于在 Boost.Asio 中获得反应堆式操作。这对于与第三方库集成、使用共享内存池等非常有用。Boost.Asio文档提供了一些信息和以下示例代码:

ip::tcp::socket socket(my_io_service);
...
socket.non_blocking(true);
...
socket.async_read_some(null_buffers(), read_handler);
...
void read_handler(boost::system::error_code ec)
{
  if (!ec)
  {
    std::vector<char> buf(socket.available());
    socket.read_some(buffer(buf));
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

boost asio 缓冲区延迟分配 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • R 中的运算符重载和类定义:使用不同的基本字段/语料库

    我用的是 领域 这个词在数学意义上 基础字段 语料库R已经使用的包括实数和复数 我有兴趣允许一些其他基础字段 语料库 例如F 这是以 5 为底的模算术 为此 我需要 定义一个新的数据类型 重载相关运算符 也许还有更多 也许还有别的东西 例如
  • 删除带有感叹号和反引号的数据库

    我正在尝试删除其中包含特殊字符 的数据库 MySQL test gt show databases Database d1 d2 db1 select oops MySQL test gt drop database db1 select
  • 从 Python 访问 Microsoft 自动化对象

    我有一组宏 已将其转换为 Excel 中的加载项 这些宏允许我与另一个程序进行交互 该程序具有所谓的 Microsoft 自动化对象 可以对其他程序的操作进行一些控制 例如 我在加载项中有一个筛选工具 可以筛选其他程序提供的列表以匹配 Ex
  • 当前上下文中不存在名称“WM_DEVICECHANGE”

    我正在尝试检测 USB 到达事件 我试图覆盖wndproc 获取我的消息 但我遇到了 Windows 消息错误 错误是 The name WM DEVICECHANGE does not exist in the current conte
  • 基于“openjdk:8-jdk-alpine”为 Spring Boot 应用程序构建 docker 映像时,无法运行“./mvnw clean install”

    我想使用 Docker 容器内的 spring io starter 提供的 Maven 包装器构建一个 Spring Boot 应用程序 我的 Dockerfile 是 FROM openjdk 8 jdk alpine install
  • 从 RDD 访问 KafkaOffset 时出现异常

    我有一个来自 Kafka 的 Spark 消费者 我正在尝试管理一次性语义的偏移量 但是 在访问偏移量时 它会引发以下异常 java lang ClassCastException org apache spark rdd MapParti
  • C# 文本框禁用快捷键

    i use a textbox inside my windows form application and i need to disable the shortcuts CTRL I and CTRL H I tried many di
  • Filter对象没有pop属性

    colorramps re split ramp 0 9a fA F 6 rampend 0 9a fA F 6 message colorramps reverse if len colorramps gt 1 starttext col
  • Oracle 数据库测试挑战 - 比较架构数据

    想知道是否有人可以帮助我在这个挑战中找到正确的方向 或者告诉我我很想通过 sql 尝试这个 如果 sql 太具有挑战性 是否有任何免费或廉价的工具可以帮助我自动化执行此操作 我正在测试新旧 Oracle 数据库之间的一些数据 我想做的是能够
  • 有没有办法克隆 tkinter 小部件?

    我正在尝试创建小部件网格 这个小部件网格一开始是标签 告诉我它们的坐标 然后我有一个将替换它们的按钮的起点和终点的列表 假设我有一个从 0 0 到 0 2 的按钮 我从该位置删除标签 并在此处放置一个具有正确行距的按钮 如果一个按钮将替换另
  • Apache Kafka 中的分区数量是否有上限

    我读到它是 10000 但我想知道的是这个限制是针对 1 个代理还是整个集群 我想要一个带有事件名称的主题并捕获用户的所有事件流 现在 我希望在该特定用户的事件将发生的专用分区上记录每个用户的活动 现在 如果用户数量超过 10000 该怎么
  • 在两个微服务之间共享域模型的最佳实践

    是否有关于如何在两个微服务之间共享域模型的最佳实践或指南 我有一个微服务 1 它提供与所有 CRUD 资源 例如订单 交互的端点 另一个微服务 2 对资源 订单 执行特定的非 CRUD 任务 微服务 2 几乎需要所有订单属性来执行其操作 在
  • 视觉代码 - 排除具有多个条件的文件

    有一个选项可以使用 when 关键字排除生成的文件 例如 files exclude js when basename ts 我还想排除从 tsx 文件生成的 js 文件 两者都不 js when basename ts basename
  • C#:FTP上传缓冲区大小

    我有FTP上传功能 但有件事我想问一下 这是缓冲区大小 我将其设置为 20KB 这意味着什么 如果我增加 减少它 会有什么不同吗 private void Upload string filename FileInfo fi new Fil
  • 使用 Thrust::transform 对推力:​​:复杂类型进行操作

    我正在尝试使用thrust transform对类型向量进行操作thrust complex
  • Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperationException

    我正在使用 Microsoft Speech 不是 System Speech 并且尝试将音频流的输入设置为我的麦克风 这是默认音频设备 但它引发了异常 Microsoft Speech dll 中发生 System InvalidOper
  • jquery 函数不适用于异步加载的 dom 元素

    I wrote jQuery事件处理程序开启DOM尚未出现在页面中但可能会异步加载到页面中的元素 我观察到这些事件处理程序似乎没有意识到一些新元素已添加到DOM并且他们需要在触发时对其采取行动 我的观察正确吗 我如何实现这个功能 如果您希望
  • 为什么 .length 不是一个需要 () 的方法

    JavaScript中为什么关键字长度不需要 似乎所有其他函数 例如 splice shift 都需要括号 我们只能推测为什么它被设为普通属性而不是方法 但是 那 length是每个字符串 数组的常量值 它在计算时不会修改任何内容 它不像方
  • 避免警告“非依赖属性的设置方法不应访问...”

    我有一个类 它有一些属性 并且有 2 个相关 在示例中称为param1 param2 他们是独立的 只是受到约束 param2必须一样大或大于param1并且必须始终存在 如果param1做 有问题的代码类似于 function set p
  • boost asio 缓冲区延迟分配

    异步操作 现在我传递预分配的字节缓冲区 例如 s async receive from boost asio buffer preallocated pointer preallocated size remote endpoint boo