使用 select() 实现超时

2023-12-21

我只能在 select () API 中将超时参数设置为最多 20 秒。无论我给出的值高于 20,select() 都会在 20 秒后返回... 所以我试图写一个超时 1 分钟的循环,如下所示

    int timeoutcount = 0;
    do
    {
    FD_ZERO(&fd);
    FD_SET(sock,&fd);
    timeout.tv_sec = 20;
    timeout.tv_usec = 0;
    rc = select (sock+1,&fd,null,null,&timeout);
    if(rc ==0)
    timeoutcount += 20;
    }
    while(rc ==0 && timeoutcount <60)

请帮助我......我走的路正确吗? 如果是这样,select 在第一次超时后返回 1..也帮我解决这个问题 注意:我在 Objective C 中使用它


select 的超时时间没有最长 20 秒的限制——一定是其他原因(很可能是套接字上的数据已准备好读取)导致 select() 提前返回。如果你真的只想使用 select() 作为一种睡眠方式,请尝试这样调用它:

struct timeval tv = {600, 0};   // sleep for ten minutes!
if (select(0, NULL, NULL, NULL, &tv) < 0) perror("select");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 select() 实现超时 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • codeigniter,获取mysql表列中的最大值

    我正在使用 codeigniter 2 我有一个 mysql 表列 存储每个学生所用的时间 例如 1 2327 0 6547 1 9876 我想获得最大值 值该列 这是我的代码 this gt db gt select max time t
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 如何使用关联常量来定义数组的长度? [复制]

    这个问题在这里已经有答案了 我有一个特征 它代表一个可以通过 UDP 套接字发送的实体 pub trait ToNetEnt const NET SIZE usize fn from net data u8 gt Self fn to ne
  • EL 方法中的参数

    我想在 JSP 中使用带有参数的 EL 方法 但 EL 不支持方法中的参数 实际上我想显示一个表格 其中有一个字段可以在一个单元格中输出值列表 对于每个单元格 此列表都会有所不同 这取决于参数 我该如何使用 EL 来做到这一点 我已经尝试过
  • 在 ngOnDestroy 函数中调用时如何等待 api 调用完成?

    我有一个场景 我必须在特定组件被销毁之前将数据发送到 api 数据库 正如 Angular2 生命周期中所描述的 在组件被销毁并调用之前执行一个方法ngOnDestroy 但正如文档中所指定的 这是一个 void 函数 因此它不会等待某些结
  • 将 IOSurface 绘制到另一个 IOSurface

    如何将一系列 IOSurface 绘制到另一个 然后将其绘制到屏幕上 我在 MultiGPU 示例项目中使用了苹果的一些源代码 但我能做的最好的事情就是绘制白屏或获得大量伪像并使应用程序崩溃 我对 openGL 很陌生 不太了解帧缓冲区和纹
  • 如何在一个 Include 后执行多个 ThenIninclude 导航道具

    对于 TestType 我想包含导航道具 Schoolclass 和 subject 我可以做一个 Include t gt t TestType ThenInclude x gt x Subject 但不是 Include t gt t
  • 跟踪约束的技术

    场景如下 我编写了一些带有类型签名的代码 GHC 抱怨无法推断出某些代码的 x yx and y 通常 您可以扔掉 GHC 并简单地将同构添加到函数约束中 但由于以下几个原因 这是一个坏主意 它并不强调理解代码 您最终可能会得到 5 个约束
  • 线程可以安全地读取VCL事件设置的变量吗?

    线程读取 Delphi VCL 事件设置的变量是否安全 当用户单击 VCL TCheckbox 时 主线程将布尔值设置为复选框的选中状态 CheckboxState CheckBox1 Checked 任何时候 线程都会读取该变量 if C
  • 在reactjs中将HTML表格复制到剪贴板

    我的 React 项目中有一个 HTML 表 我想将表格复制到剪贴板 table thead th Amount th th Charges th thead tbody tr item Amount tr tr item Charges
  • 仅当字段存在时才按字段排序

    我试图获取所有用户 并按另一个表上的字段对它们进行排序 但是该字段并不总是存在 用户 持有用户 用户元 保存元数据 特别是 权重 这是我想要排序的 一个更具体的解决方案是自动定义它们的默认权重 但是我是否可以让它在没有权重的情况下工作 当前
  • golang 服务器上的 CORS 和 javascript 获取前端

    我有一个 golang HTTP 服务器 代码如下 http HandleFunc login func w http ResponseWriter r http Request log Println New incoming reque
  • 制作用户定义的类 std::to_string-able

    我知道 Java 或 C 似乎太多了 但是 是否有可能 好 明智地使我自己的类有效作为函数的输入std to string 例子 class my class public std string give me a string of yo
  • 来自模板化对象的 Java 8 函数式构造函数

    我正在使用 Eclipse Luna Service Release 2 4 4 2 Java 8 u51 我正在尝试创建一个方法 该方法将根据另一个方法参数创建传递的对象的实例 原型简化为 public
  • 如何使用不可变数据类型实现 DFS

    我正在尝试找出一种 Scala 风格的图形遍历方式 最好使用 val 和不可变数据类型 鉴于下图 val graph Map 0 gt Set 1 1 gt Set 2 2 gt Set 0 3 4 3 gt Set 4 gt Set 3
  • 邪恶的pdf不渲染页眉/页脚

    我在用邪恶 pdf https github com mileszs wicked pdf用于生成pdf from html在我的 Rails 项目上 正在渲染template但我无法打印header footer部分 下面是我的仅打印的代
  • 无法从 Dropbox 下载文件

    我正在从 Dropbox 上传和下载文件 当我上传文件时 它会正确上传 当我下载文件并打开它时 该文件是零字节 有人能告诉我为什么会发生这种情况吗 下载代码 try File localFile new File localFilePath
  • 使用 LINQ 将项目移动到列表顶部

    有没有办法使用 LINQ 将 id 10 的项目移动为列表中的第一项 Item A id 5 Item B id 10 Item C id 12 Item D id 1 在这种情况下 我怎样才能优雅地将项目 C 移动到我的顶部List
  • Jquery 拖放,无需插件

    我尝试使用 JQuery 创建一个拖放插件 draggable on mousemove function var mouseposition this also needs to account for onclick offset of
  • 当目标系统关闭时,停止 Spring Cloud Stream @StreamListener 监听

    我有一个应用程序 它从 Kafka 获取消息并调用目标系统来更新旧版 Oracle 数据库 我想要启用一个场景 如果目标系统关闭 则将消息留在 Kafka 总线上 并且在给定的时间内不处理它们 我正在考虑一些基于 Hystrix 的断路器解
  • 我们可以在 swing 中开发非常漂亮的 UI吗?如果不能的话有什么替代方案

    在我当前的项目中 我们必须用 java 开发一个漂亮的基于桌面的应用程序 目前 我们有一个用 swing 编写的非常基本的桌面应用程序 并且团队没有很好的 swing 知识 我们能在 swing 中创建一个非常好看的 UI 吗 我们应该使用
  • 使用 select() 实现超时

    我只能在 select API 中将超时参数设置为最多 20 秒 无论我给出的值高于 20 select 都会在 20 秒后返回 所以我试图写一个超时 1 分钟的循环 如下所示 int timeoutcount 0 do FD ZERO f