write_some 与 write - boost asio

2024-02-22

为什么有人想使用write_some什么时候它可能无法将所有数据传输给对等方?

从升压write_some文档

write_some 操作可能不会将所有数据传输到对等方。 如果需要确保所有数据都被写入,请考虑使用 write 函数 在阻塞操作完成之前写入。

有什么相关性write_someboost 中的方法当有write方法?我浏览了 boost write_some 文档,我什么也猜不到。


在一种极端情况下,write等待直到所有数据均已确认已写入远程系统。它以最慢的速度为代价,提供了成功完成的最大确定性。

在另一个极端,您可以将数据排队等待写入并立即返回。这很快,但根本不能保证数据会被实际写入。如果路由器出现故障、DNS 提供不正确的地址等,您可能会尝试向某些不可用且(可能)很长时间不可用的计算机发送数据。

write_some是这两个极端之间的中间点。至少直到some数据已被写入,因此它可以向您保证您尝试写入的远程主机当前确实存在(对于某些“当前”的定义可能相当宽松)。它不能向您保证所有数据都会被写入,但可能会更快地完成,并且仍然给人一种“温暖模糊”的感觉,即写入是likely去完成。

至于您何时可能想要使用它:明显的情况是通过家庭计算机上的本地连接进行大量传输。这里可能的问题不在于硬件,而在于计算机(或路由器)配置错误。一旦一个字节通过,您就可以确信连接已正确配置,并且传输可能会完成。由于转账金额较大,您可能会节省大量时间,而将成功完成的保证损失降到最低。

至于什么时候你想避免它:几乎与上述情况相反。您通过(例如)不可靠的互联网连接发送少量数据。由于您只发送少量数据,因此在发送所有数据之前返回并不能节省太多时间。连接非常不可靠,以至于传输一个数据包的几率实际上与其他数据包的几率无关——也就是说,发送一个数据包并不能告诉您能够发送下一个数据包的可能性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

write_some 与 write - boost asio 的相关文章

  • 为什么 F# 的默认集合是排序的,而 C# 的不是?

    当从 C 世界迁移到 F 最惯用的可能 思维方式时 我发现了这个有趣的差异 在 C 的 OOP mutable 世界中 默认的集合集合似乎是HashSet https learn microsoft com en us dotnet api
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 在现代 C++ 中,临时生命周期延长何时有用?

    在 C 中 您可以将函数的返回值 返回值 而不是引用 绑定到 const 引用 并且代码仍然有效 因为该临时对象的生命周期将延长到作用域末尾 例如 std string get string return abc void f const
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 为什么 Cdecl 调用在“标准”P/Invoke 约定中经常不匹配?

    我正在开发一个相当大的代码库 其中 C 功能是从 C P Invoked 的 我们的代码库中有很多调用 例如 C extern C int stdcall InvokedFunction int 使用相应的 C DllImport CPlu
  • 如何使用 NPOI 按地址(A1、A2)获取 Excel 单元格值

    我有一个 Excel 单元格地址 例如 A1 A2 如何使用 C 中的 NPOI 框架以编程方式访问此单元格 我找到的一些 Java POI 示例代码 CellReference cr new CellReference A1 row my
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • Jersey 2.26 和 Spring 4.3.10,但没有 HK2

    是否可以将 Jersey 2 26 x 配置为仅依赖 Spring 进行注入而不是 HK2 我知道 Jersey 现在与 Spring 兼容 但是是否也可以完全摆脱 HK2 不 不是 Jersey 使用了 hk2 的许多特殊功能 例如与 S
  • R 中的广义降梯度 (GRG2) 算法

    有谁知道哪个R包实现了广义降低梯度 GRG2 算法 谢谢 由于 BenBolker 已经完成了初步的工作来寻找您希望复制的功能类型 因此我发布了一个可能有用的后续内容 最近 Rhelp 上的一次交流以 R 提名的报价结束fortunes包裹
  • Android Espresso - 单击带有图像和文本的导航抽屉项目

    当导航抽屉由带有图像和文本视图的行列表组成时 如何单击导航抽屉项目 我使用了来自以下位置的 Espresso 测试源示例 git testapp test src main java com google android apps comm
  • 更新本地通知的开火日期并取消之前的通知

    我知道有几个问题here https stackoverflow com questions 5866146 remove a local notification from iphone by date and there https s
  • 如何获取主机的主IP地址?

    调用以下命令会返回所有 IP 地址的列表 Dns GetHostAddresses Dns GetHostName 有时 根据机器配置 可能会给您返回多个 IP 那么问题来了 如何确定哪个是主IP地址呢 您是否枚举了 NIC 不存在 主 I
  • 我们在 PHP 的 cURL 中使用 CURLOPT_WRITEFUNCTION 有何用处?

    您能用例子描述一下吗 我知道这是一个老问题 但也许我的回答会对您或其他人有所帮助 WRITEFUNCTION 对于处理流入的文本或根据某些条件中止下载非常有用 这是一个简单地将所有文本转换为大写字母的示例 function get html
  • 通过限制性出站防火墙建立 TCP 连接

    我正在使用 Java 创建一个使用 TCP 进行通信的客户端 服务器应用程序 客户端运行的网络具有出站防火墙 可阻止客户端连接到服务器 有什么方法 解决方法可以通过此防火墙创建 TCP 连接吗 我尝试使用开放的常见端口 例如端口 80 44
  • 使用尾递归实现javascript函数

    我有一个代表树的平面数组 我想使用尾递归构建一个嵌套对象 我有以下代码可以运行并生成所需的输出 但我不确定它是否是尾递归的正确实现 请指教 const myArray id root id 0 parent root id 1 parent
  • NuGet Pack - 针对 nuspec 或 csproj 打包的不同问题

    我在这里遇到了第 22 条军规 我正在使用 NuGet 和 TeamCity 我试过做NuGet pack使用 nuspec 文件 我也尝试过使用 csproj 文件 每个人都有自己的问题 在 TeamCity 中 如果我使用nuspec文
  • 节点高速通道-会话管理

    我为 ArangoDB for ConnectJS 编写了一个会话存储驱动程序 它正在工作 尽管仍处于 alpha 阶段 但我有几个问题 过期属性为 false 的第一个会话仅在用户代理的持续时间内保留 我注意到浏览器窗口关闭时不会调用 s
  • 以编程方式获取 SQL 集群虚拟名称

    我编写了一个 Windows 服务来从我们所有的 SQL 服务器收集信息 该服务安装在每台服务器上 并利用 WMI 和 SMO 将相关系统信息插入回中央数据库 为了获取 SQL 信息 我使用以下 C 代码 List
  • 使用 EC2(Amazon Web Services)自动 Ejabberd 集群[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Using Ejabberd http www process one net en ejabberd in EC2 http aws amazon
  • 在 Android 上检测 4K UHD 屏幕

    我正在尝试检测设备何时能够以 4K UHD 3840x2160 分辨率输出 nVidia Shield TV 和 Sony Xperia Z5 Premium 等许多设备即使支持 UHD 也会报告以 1080p 运行 因为它们默认为非视频布
  • Windows 7 左键单击时钟弹出窗口

    当在 Windows 7 也可能是 Vista 上单击任务栏中的时钟时 会打开一个弹出窗口 显示日历和时钟 因此不是日期和时间调整窗口 我如何自己打开这个窗口 在 C 中首选 我希望timedate cpl会调用它 但这会打开日期和时间调整
  • 如何在 Tkinter 中获得带有滚动条的框架?

    我想要一个Frame 用户可以根据应用程序的需要添加任意数量的文本字段 该应用程序以一个文本字段和该文本字段下方的一个按钮开始 当用户按下按钮时 新的文本条目将添加到第一个文本条目下方 这可能会重复无数次 在窗口的中间 会有一个Text小部
  • docker 中的特权模式以集群形式组成

    我在用docker compose yml在具有树莓派集群的 docker swarm 中部署服务 我的服务需要访问树莓派 GPIO 并且需要特权模式 我使用 docker 版本 18 02 和 docker compose 版本 3 6
  • 返回流而不是列表[重复]

    这个问题在这里已经有答案了 在 Java 8 中我越来越多地替换Collection返回值与Stream 所以我曾经拥有过 public List
  • 我可以使用 Google Chrome 扩展程序阻止alert()吗

    我可以创建一个 Google Chrome 扩展来阻止该页面执行alert 正如 MrGlass 所说 目前 Chrome 扩展程序在单独的环境中运行 限制了对实际应用程序的访问 window对象并提供仅对扩展有效的副本 为了解决这个问题
  • Django - 区分不同类型的 IntegrityError

    我正在使用 django MySQL 有时 我将重复的数据插入数据库 这会导致 django 引发错误IntegrityErrror 问题是 django python 对几个不同的版本使用相同的错误MySQL 错误 http dev my
  • write_some 与 write - boost asio

    为什么有人想使用write some什么时候它可能无法将所有数据传输给对等方 从升压write some文档 write some 操作可能不会将所有数据传输到对等方 如果需要确保所有数据都被写入 请考虑使用 write 函数 在阻塞操作完