当我调用WSASend()时,所有数据都会被发送吗?

2024-02-15

使用 IOCP 时,如果我调用WSASend()假设有 2 KB 的数据。当我收到完成通知时,此完成通知是否表明整个 2 KB 已发送,或者可能有一些字节未发送?


在正常情况下,是的,只要套接字使用重叠 I/O,您的完成就会收到整个 2 KB 已发送的通知。

唯一可能返回小于发送数据大小的情况是连接在发送过程中终止;在这种情况下,它返回发送的部分字节数。

如果不使用重叠 I/O,并且传输缓冲区没有足够的空间来接收整个写入,则它可能会返回部分写入。

根据我的经验,这种情况很少被处理,因为被终止的连接通常会调用一些其他错误处理,并且您很少可以对发送的字节数做任何有用的事情。

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

当我调用WSASend()时,所有数据都会被发送吗? 的相关文章

随机推荐

  • 自动从 Woocommerce 谢谢重定向到传递变量的外部链接

    在 Woocommerce 中 下订单后 我想在 5 秒后自动将客户从感谢页面重定向到外部链接 并传递一些变量作为order id 以及order ammount 那么 如何在 5 秒后自动将客户从 Woocommerce 谢谢重定向到传递
  • 用于 ASP.NET 的自定义 Javascript Ajax

    我已经编写了一些基本的 Javascript 函数 并且想了解如何使用此 JS 代码在 C 4 0 ASP net 项目中启用异步回发 例如 我有一个脚本 单击时会增加数字 再次单击时 数字会减少 我基本上从数据库加载号码 然后隐藏一个 s
  • 如何从另一个类访问共享首选项布尔值

    我创建了一个包含两个按钮的单选组 我可以选择一个并保存它 它工作正常 关闭应用程序后仍然存储 我想做的是使用另一个类中单选按钮的值 这是我的设置类 其中包含共享首选项代码 public class Settings extends Acti
  • C# - 读取字节,它们是什么以及发生了什么。我期望二进制值,而不是十进制数

    我已经成为一名程序员几年了 但我从来没有had了解涉及字节的低级操作 然而它让我感兴趣 并且我想了解更多有关使用字节的信息 在下面的代码中 我正在读取一个仅包含 嗨 那里 一词的文本文件 FileStream fileStream new
  • ASP .net 当前物理位置

    您好 我正在开发 ASP net Web 应用程序 我需要找到网站的当前位置 物理位置 或包含程序集的 bin 目录 我尝试使用 Directory GetCurrentDirectory 并返回 ASP net 临时目录 我真的不喜欢在我
  • 将 JSON 数据发布到 .asmx Web 服务

    我正在尝试将一些简单的参数发布到 asmx Web 服务 我收到以下错误 请求格式无效 application json 字符集 utf 8 我真正需要的是能够传递一个复杂的对象 但我无法通过使用 json 内容类型发出 POST 请求 这
  • UIDocumentInteractionController 日历访问

    我有一个 ics 日历 文件 我用UIDocumentInteractionController using presentOptionsMenuFromRect 运行时 打开方式 菜单看起来像this https i stack imgu
  • twig 扩展中的 Symfony 依赖注入

    好的 我试图创建依赖于其他服务的树枝扩展 安全 上下文 并遇到了一些麻烦 所以 这是我的服务声明 acme twig user extension class Acme BaseBundle Twig UserExtension argum
  • 在 Groovy 类中导入 groovyx.net.http.RESTClient

    我尝试在我的 groovy 类中导入 groovyx net http RESTClient 我的常规课程是这样的 void getREST def r new RESTClient url def response r get path
  • 限制文件下载

    我目前正在为客户创建一个网站 该网站基本上涉及销售各种文件 这显然是一件非常常见的事情 这让我觉得自己很愚蠢 因为我没有想到一种方法来做到这一点 购买完成后 客户应该会被带到包含下载链接的页面 并收到包含下载链接的电子邮件和包含将为他们创建
  • 无法绑定属性

    我已经将Spring Boot从版本1 5 6更新到2 0 0 并且开始出现很多问题 一是题目中给出的问题 我有一个带有属性的类 Data ConfigurationProperties eclipseLink public class E
  • jquery scrollTop animate 完成后滚动触发

    为什么另一个滚动事件被调用after a scrollTop动画激发其complete打回来 单击处理程序 var lock false id click function event var pos if lock return lock
  • Rails 复选框 AJAX 调用,不想渲染任何内容

    我有一个小演示设置 其中单击复选框可通过 AJAX 切换属性 它工作正常 但 Rails 确实想要渲染一些东西 所以我基本上诉诸于在我的视图中创建一个空白的toggle js erb 文件 有问题的控制器操作 def toggle task
  • 为什么“cabal init”会破坏“ghc-mod 检查”?

    ghc mod 在只有一个 haskell 源文件的目录中工作 但如果我在该目录 tmp test 中运行 cabal init 则会收到以下错误 p1 dave peach tmp test ghc ghc mod check Main
  • 如何在没有循环的情况下更改数组内的值 Swift

    我有一个布尔数组 例如 var myBool Bool true true false true false 我想将所有元素从索引 1 更改为索引 3 像这样的东西 myBool 1 3 true true true true true f
  • Slimscroll 栏在移动浏览器中非常慢

    我正在使用 slimscrollbar 插件 它在 Web 浏览器中运行良好 但在移动浏览器中运行速度非常慢 有什么解决方案可以提高移动设备的速度吗 如果您使用过此处的 slimscrollbar 插件 http rocha la jQue
  • OpenJDK 客户端 VM - 无法分配内存

    我正在集群上运行 Hadoop MapReduce 作业 我收到这个错误 OpenJDK 客户端 VM 警告 信息 os commit memory 0x79f20000 104861696 0 失败 错误 无法分配内存 errno 12
  • JS $ 是什么意思?

    我不明白 Javascript 的想法 目的 用途 如 函数 id 返回 document getElementById id 有人可以解释一下或指出我的解释吗 Thanks Pete 当你看到 JavaScript 代码涉及大量 foo
  • 如何在 driver.Close 后从 ChromeDriver 重新打开浏览器?

    我目前已经初始化了 chromedriver 这包含 控制台 和实际的 chrome 浏览器 窗口 我想调用 chromedriver Close 方法仅关闭 浏览器 窗口 然后在应用程序运行时重新打开它 我这样做是因为我的控制台已经处于隐
  • 当我调用WSASend()时,所有数据都会被发送吗?

    使用 IOCP 时 如果我调用WSASend 假设有 2 KB 的数据 当我收到完成通知时 此完成通知是否表明整个 2 KB 已发送 或者可能有一些字节未发送 在正常情况下 是的 只要套接字使用重叠 I O 您的完成就会收到整个 2 KB