套接字:有时(很少)数据包在接收过程中丢失

2023-12-05

我在用着Socket从 udp 多播接收数据。 代码很简单:

s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
....
while (true)
{
    int count = 0;
    try
    {
        count = socket.Receive(byteArray);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        return;
    }
    if (count > 0)
    {
        OnNewMessage(new NewMessageEventArgs(byteArray, count));
    }
}

问题是有时我会丢失数据包。不要太频繁,每 2 分钟一次。

我确信数据包已到达,因为我可以在同一台计算机上启动的另一个 C++ 程序中看到它,并配置为接收相同的数据包。

为什么我的程序无法捕获其他程序可以捕获的数据包?为什么我会丢包?计算机是否可能太慢(或太忙)而无法接收数据包?

我每秒收到大约 2000 个数据包,并且使用 Xeon E3 处理器,我认为这应该足够了......


如果您绝对确定数据包已到达(并且:我必须强调这是not使用 UDP 时可以保证,并且每秒 2000 个数据包每两分钟丢弃 1 个数据包,这是比您可能希望的更好的接收速率,即使对于两台相邻的机器也是如此),那么这possibly表示接收缓冲区在短时间内已满。尝试增加ReceiveBufferSize.

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

套接字:有时(很少)数据包在接收过程中丢失 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N

随机推荐

  • 如何在 Windows 中使用 glib/gtkmm 打开/生成文件

    我已经尝试过 GError pError NULL string uri g filename to uri file c str NULL pError if g app info launch default for uri uri c
  • PHP:让文件返回自己的目录

    我无法在在线服务器上找到正确的目录 是否有一个函数可以返回存储文件的文件夹 在 PHP gt 5 3 中使用 DIR 和使用前dirname FILE http php net constants predefine http php ne
  • 为什么 strcpy 采用 const char* 作为 src 而不是 char *?

    我实现了自己的 strcpys 来查找 src as const char 和 char 之间是否有任何区别 但没有发现以下 2 个之间有任何区别 并且两者的工作原理相同 char my strcpy char dest char src
  • 是否可以检查两组是否相等?

    如果我有一些像这样的 HTML b 1 i 2 i 3 b 以及以下正则表达式 lt gt gt lt gt gt 然后它会匹配 b 1 i 2 i 我希望它只匹配开始标签和结束标签相同的 HTML 有没有办法做到这一点 Thanks Jo
  • Javascript:for循环中定义的每个事件处理程序都是相同的,使用最后一次迭代的值

    我无法理解 Javascript 中的范围规则 在下面的示例中 我假设范围 url 变量在 for 循环中是私有的 并且 onload event 函数将看到这个私有实例 但事情似乎并非如此 警报将弹出最后一个网址两次 如果有人能澄清发生了
  • 在python中设置字典的属性

    是否可以从 python 中的字典创建一个对象 使得每个键都是该对象的一个 属性 像这样的东西 d name Oscar lastName Reyes age 32 e Employee d print e name Oscar print
  • 基于工作流状态的不同权限

    我需要根据对象的工作流程状态对对象设置不同的权限 例如 经理组 仅在状态 草稿时才可以编辑对象 但 超级经理组 在状态 已验证时也可以编辑对象 似乎不可能使用ir model access我正在评估是否可以使用ir rule 看来不是 有没
  • 来自数据库的 Primefaces 树

    我有以下实体类 Entity Table name THE TREE catalog schema dbo public class TheTree implements Serializable private static final
  • 使用 Photokit 编写带有元数据的照片

    我目前正在使用 ALAsset 框架将图像从照片库保存到带有元数据的文档目录 我使用的代码是 ALAssetsLibrary library ALAssetsLibrary alloc init autorelease library as
  • Rails-4,ExecJS::Pages 中的ProgramError#welcome

    我正在尝试向我的 Rails 应用程序添加登录 注销功能 为此我添加了bcryptgem 用于密码加密和访问控制器 现在 当我在本地运行它时 我收到一条错误消息 在添加上述功能之前 我的应用程序运行良好 错误信息 TypeError Obj
  • Android 中的 Activity 或 Fragment?

    我正在创建一个带有操作栏的应用程序 选项卡会转到不同的网页 当用户单击不同的选项卡时 我希望以前的选项卡网页保持相同的状态 即再次按下选项卡时不重新加载 最好的方法是什么 单独活动 碎片 一项活动中有多个网络视图 Thanks 使用 Act
  • 从 mod_rewrite 规则中排除图像

    我的 htaccess 脚本无意中更改了图像 URL 因此 URL 路径中包含 portfolio 的任何图像都会受到不利影响 有什么方法可以将图像从该特定规则中排除吗 redirect 301 sitemap xml http www e
  • WPF 中线程的非常基本的解释?

    我对 WPF 非常陌生 我在互联网上查找了一些有关线程的示例和教程 他们有自己的描述方式 但对于像我这样天真的人来说 我想以自己的方式去理解 我可以使用数据库更新功能开始我的第一个线程 这是场景 我有大量数据要插入数据库中 现在让我们假设以
  • flowjs:调用方法“join”。无法在混合上调用方法

    假设我有一个恒定的动物 我用它导入 import animals from animals 假设动物常数为 hoofed horses sheep goats feline lions tigers canine dogs wolves 假
  • 如何使用flask-admin编辑模型视图

    如何从flask admin的编辑页面使用generate password hash设置password hash 我在 python shell 中创建用户名和密码 密码经过哈希处理 admin add view MyModelView
  • 如何在文件中存储和检索 Python 本机数据结构?

    我正在读取 XML 文件并将所需数据重新组织为 Python 数据结构 列表 元组等 例如 我的 XML 解析器模块之一会生成以下数据 data miner py animals Chicken Sheep Cattle Horse pop
  • Xamarin.IOS:本地化不起作用

    我有一个 Xamarin IOS 应用程序并尝试本地化一些图像 我以这篇文章作为指导 https developer xamarin com guides ios advanced topics localization and inter
  • WPF:可编辑的组合框会掉落?

    我正在尝试创建一个既可编辑又可下拉而不是下拉的组合框 按向上箭头键 默认为向下键 时也应打开菜单 我尝试修改 ComboBox 的默认 ControlTemplate 但它似乎不支持 IsEditable 默认ControlTemplate
  • 如何用SAX正确解析XML?

    我正在从 REST 服务接收 XML 文档 该文档应使用 SAX 进行解析 请参阅以下由 XSD 生成的示例 设置解析器不是问题 我的主要问题是实际处理startElement endElement 我不明白如何提取我需要的项目并存储它们
  • 套接字:有时(很少)数据包在接收过程中丢失

    我在用着Socket从 udp 多播接收数据 代码很简单 s new Socket AddressFamily InterNetwork SocketType Dgram ProtocolType Udp while true int co