两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理

2024-02-12

我的 C 程序中有两个 send(),查看wireshark,我意识到它们是作为一条 TCP/IP 消息发送出去的。我假设这是某种 TCP/IP 优化,确定它们足够小,可以一起发送。然而,我正在从头开始重建一个旧程序,并且我正在基于它的 TCP/IP 流量构建我的工具:MTU 限制、内部协议设计等。因此,如果旧工具发送两条单独的消息,我需要发送两条消息单独的消息。

那么有谁知道它在后台具体做了什么(除了简单的优化之外),以及是否有一个标志或需要启用/禁用的东西,以便我获得 C send() 和 TCP/ 的 1 比 1 比率IP传输?现在我能做的就是在每个 send() 之后放置一个 sleep(1) 来将它们分开。

Thanks.


您可以设置TCP_NODELAY in setsockopt禁用 Nagle 算法,以防止您的操作系统合并小数据包。然而,重要的是您要认识到 TCP 是一种面向流的协议,并且各个“数据包”并不是有意分开的。沿途的路由器可以自由地组合或拆分 TCP 数据包(尽管这种情况并不常见,因为需要额外的处理),并且接收操作系统不一定会准确地读取每个发送的数据包recv()。如果要在 TCP 中描述信息包,则需要使用标头结构来报告以下字节中有多少属于该包。

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

两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理 的相关文章

  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • std::bind 重载解析

    下面的代码工作正常 include
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • Symfony2:在表单集合中自定义表单标签

    我正在尝试自定义在子表单中生成的表单标签 我想显示特定比赛周中包含的足球比赛 如下所示 Fixture 1 Manchester United 0 1 Arsenal Fixture 2 Chelsea 2 1 Liverpool 我的表单
  • 如何附加到 Visual Studio Code 中的特定进程

    当我在 VSC 中调试 net core 项目时 系统会要求我提供要附加的进程 ID 这显示了一长串正在运行的进程 我可以在其中键入或滚动以查找特定进程 每次我想调试时如何附加到特定的同一进程 在 Visual Studio 代码中 您的调
  • 每 40 毫秒执行一次 php 脚本?

    有没有办法每 40 毫秒执行一次 php 脚本 我不知道cronjob是否是正确的方法 因为每秒25次需要大量CPU 那么 如果 php 不是正确的语言 我应该使用什么语言 我正在制作一个在线游戏 但我需要一些东西来处理游戏中发生的事情 移
  • 在远程服务器上安装 Xdebug (bluehost.com)

    我已经在我的 mac 上安装并运行了 xdebug 但我似乎无法将其安装在我的服务器 bluehost com 服务器 上 我已经尝试了很多年 并希望得到任何可能的帮助 基本上我已经下载了 xdebug so 并将其安装在我的 public
  • ARM 上的 Windows RT 本机代码调用约定是什么?

    我找不到任何有关 Visual Studio C 使用的 Windows RT on ARM 调用约定的文档 微软用的是ARM吗AAPCS http infocenter arm com help topic com arm doc ihi
  • 如何对全文索引搜索 SQL 的两列执行 CONTAINS()

    我有一个包含以下列的表 MyTable Col1 NameID VARCHAR 50 主键不为空 Col2 地址 VARCHAR 255 数据示例 名称 1 24 地址 主街1234号 在使用默认参数创建目录后 我在表上创建了全文索引 我怎
  • 在 C/C++ 中使用音频的绝对初学者指南?

    我一直对音频转换软件感到好奇 但我从未见过从初学者的角度正确解释如何编写一个简单的程序 例如将 mp3 文件转换为 wav 文件 我不是询问所涉及的任何复杂算法 只是使用简单库的一个小示例 在 SO 上搜索 我想出了几个名字 包括 Lame
  • Visual Studio 2012 快捷键 从 aspx 到 Code Behind 和 Code Behind 到 aspx

    我想知道从Code Behind访问aspx和aspx访问Code Behind页面的快捷键 比较明确的回复 From ASPX page to code behind press F7 From CodeBehind to ASPX Pa
  • Firefox 不显示网站图标

    我创建了 favicon ico 文件并在 HTML head 标签中声明它 IE 8 和 Opera 可以很好地处理它 但 FireFox 甚至不会尝试加载它 正如我从我的 Fiddler 调试代理中看到的那样 我尝试了许多不同的类型 i
  • 同时访问0x10f10df48,但修改需要独占访问

    我正在进行 swift4 迁移 并且出现此警告 这使我的应用程序非常慢 同时访问0x10f10df48 但修改需要独占访问 on line else if context KVOContext keyPath contentSizeKeyP
  • 列出外部进程正在运行的线程

    有时我们的客户会使用 幽灵 应用程序 这意味着当我们在很长时间 例如 72 小时以上 后关闭应用程序时 我们有时会看到应用程序在视觉上已关闭但仍在进程列表中 由于我们无法轻松重现 因此我们想知道哪个线程仍在运行 所以我们想提供一个非常小的工
  • 如何解决循环依赖

    我有3项服务 auth service ts account service ts http service ts 当用户注册时 我应该创建新帐户 因此我将 account service ts 导入到 auth service ts 我应
  • 在 Python 3 中拼出日期的每个单词

    在Python 3中 我想将2018 01 01更改为 2018年一月一日 我查看了格式指南Python 日期时间文档 https docs python org 3 library datetime html strftime and s
  • Visual Studio 2012:我可以在远程调试器中启动 .NET 4.5 应用程序(而不仅仅是附加)吗?

    平台 Visual Studio 2012 C WPF应用程序 Visual Studio 2012 远程调试器工具 我在 64 位系统上的 NET 4 5 应用程序在很早的阶段就崩溃了 https stackoverflow com qu
  • 使用getline后如何让cin工作?

    因此 我使用 cin getline str 10 h 读取了一个字符串 如您所见 我使用了自定义分隔符 h 并且希望读取最多 9 个字符 完成此操作后 我使用 cin gt gt n 将一个整数读入我的 int 变量 n 中 includ
  • 当用 R 抓取网页并且它没有价值时如何报告 NA?

    我从 booking com 的页面上抓取数据并创建数据框 我注意到并非所有酒店都有评级 我尝试过这个例如 Got the elements from Inspect code of the page titles page lt page
  • 哪些错误事件不会触发window.onerror?

    MDN 陈述如下 https developer mozilla org en US docs DOM window onerror 一些 许多error事件不触发window onerror 你必须 专门听他们的 这很好 但是哪些不调用o
  • 从现在开始 5 秒后用 Java 怎么说?

    我正在看日期文档 http www j2ee me javase 6 docs api java util Date html并试图找出如何表达现在 5 秒 这是一些伪代码 import java util Date public clas
  • 从命令行打开 Chrome

    我有以下批处理文件 echo off REM Starts a chrome browser with multiple tabbed sites C Users UserName AppData Local Google Chrome A
  • 两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理

    我的 C 程序中有两个 send 查看wireshark 我意识到它们是作为一条 TCP IP 消息发送出去的 我假设这是某种 TCP IP 优化 确定它们足够小 可以一起发送 然而 我正在从头开始重建一个旧程序 并且我正在基于它的 TCP