中断accept()

2023-12-12

是否有操作系统可移植的方法来中断阻塞accept?我有一个多线程守护程序/服务,当守护程序/服务收到关闭信号时,需要优雅地关闭所有侦听网络主机。我看到有人说你应该使用非阻塞套接字或选择超时 - 但这些不会降低性能,因为我的应用程序应该尽可能快?守护进程在主线程中运行,而每个侦听网络主机在自己的线程中运行。现在的问题是accept如果侦听网络主机的套接字上没有网络流量,则无限期等待。如果我应该使用信号,那么是否有一个使用信号来中断的示例accept?


这里的解决方案是不调用accept当无事可做时。只需使用非阻塞select or poll等到有东西可以接受,然后accept在那时候。除非您创建一个非常小的超时,否则从非阻塞调用中唤醒并再次返回等待该套接字不会对性能产生任何影响。

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

中断accept() 的相关文章

  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 加载 QPixmap 数据的更好方法

    更好的方法来做到这一点 没有QImage QImage image width height QImage Format RGB888 memcpy image bits m frameRGB gt data 0 height width
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 反应改变数组中的状态(for循环)

    我有一个有航班的州 并且有一个滑块可以更改最高价格以更改航班元素的可见性 maxpriceFilter var flightOffer this state flightOffer var sliderPrice this state sl
  • 如何在 C++ 中将加载到内存中的图像文件转换为 ID2D1Bitmap

    我正在尝试将刚刚从压缩文件提取到内存中的图像文件 png 但可以是任何东西 转换为 ID2D1Bitmap 以便使用 Direct 2D 进行绘制 我试图寻找一些文档 但我只能找到接收 const char path 或询问我图像的宽度和高
  • 解析 URI 参数和关键字值对

    我想解析文本文件中 URI L 的参数和关键字值 还应包括没有值的参数 Python 很好 但我愿意接受使用其他工具的建议 例如 Perl 或单行代码也可以解决这个问题 示例来源 www domain com folder page php
  • 使用 VB .Net 和 UI Automation 从 Google Chrome 中所有打开的选项卡获取 url

    您好 我有这段代码可以获取 Chrome 上的当前 url 但只能获取活动选项卡 url 我需要使用 UI 自动化从所有打开的选项卡获取 url 我的工作代码 Function GetChromeUrl ByVal proc As Proc
  • R 文本挖掘 - 处理复数

    我正在学习 R 中的文本挖掘 并且取得了相当大的成功 但我对如何处理复数感到困惑 即我希望 nation 和 nations 被算作同一个词 理想情况下 dictionary 和 dictionaries 被算作同一个词 x lt nati
  • 对多个后端服务的 Azure AD 用户进行身份验证

    我正在尝试找到一种授权 Web 客户端的策略 该客户端对 Azure 中托管的两项服务进行 HTTP 调用 Web 客户端都是客户端 两个 API 服务是托管在 Azure 中的 Azure Functions 对于上述三个应用程序中的每一
  • UIWindow 中的多个视图

    我有一个 基于导航的应用程序 它还需要始终在屏幕底部显示一个视图 添加 UINavigationController 的视图后 我将这个新视图添加到 UIWindow 中 In my delegate s applicationDidFin
  • 设置链接数据库 (MS Access) 路径而不访问链接数据库

    我的 Access 系统由两部分组成 一个包含表单 报告和宏的 前端 mdb 文件 以及一个包含数据的后端 mdb 文件 前端 MDB 文件的副本存储在每台计算机上 后端文件位于 server share backend mdb 前端MDB
  • 使用 Robospice 和 Android Studio 出现 Commons-Io 重复条目错误

    我已经研究以下问题几个小时了 但还没有想出解决我的问题的方法 我已经尝试了 Stack Overflow 上的以下修复 Android Studio 更新至 1 0 损坏 MultiDex and Gradle 插件 v0 13 1 后重复
  • 计算给定数字在排序集中的索引

    不确定这个问题应该在 Math Overflow 上还是在这里 所以首先在这里尝试 假设我们有一个包含 N 个 1 和 M 个 0 的数字 有 M N M N 个不同的这样的数字 可以在可数集合中排序 例如 包含 2 个 1 和 3 个 0
  • RootViewController动画过渡,初始方向错误

    所以我遵循了这个线程 RootViewController 切换过渡动画将 window rootViewController 从 A 转移到 B 再到 C 代码如下所示 UIView transitionWithView self win
  • 斯坦福计算器应用程序不断崩溃

    我正在斯坦福大学使用 Swift 在线学习斯坦福大学 iPad 和 iPhone 开发人员课程 并致力于创建一个计算器应用程序 对于编程还是有点陌生 但是 每当我从计算器中选择运算符时 它就会不断崩溃并显示错误消息 operandStack
  • IE 的 css 'pointer-events' 属性替代方案

    我有一个下拉导航菜单 其中某些标题在单击时不应导航到其他页面 这些标题在单击时打开下拉菜单 而其他标题则应导航 这些标题没有下拉菜单并直接导航 但是 两者类型有href给他们定义的 为了解决这个问题 我为前一种类型的标题添加了以下 css
  • Vue:不同页面之间共享数据

    var app new Vue el app data sharedData methods goToPageB function if some condition is met window location href pageB ht
  • 在 Laravel 中编码,在 Python 中解码

    我正在使用 Laravel 的加密字符串加密我网站上的一些数据的方法 它使用 OpenSSL 的 256 位 AES CBC 加密 无需任何序列化 我现在正尝试在 Python 中解密该数据 但我不断收到有关密钥长度的错误 并且似乎无法弄清
  • 仅当浏览器高度比页面短时,如何使用jquery显示“返回顶部”按钮?

    如何在底部添加 显示 返回顶部 按钮div使用jqueryonly ifheight 浏览器高度比页面高度短 否则应该隐藏 p a href mainwrapper Back to top a p to this div p Paragra
  • 在 php 中使用 PDO 类获取 num_rows 时出现问题

    我刚刚更改了数据库连接 我还不习惯 PDO 类或 OOP 无论如何 我像这样连接到数据库 dsn mysql host DB HOST dbname DB NAME try this gt db new PDO dsn DB USER DB
  • 正则表达式从多语言字符串中过滤除白名单之外的所有字符

    我正在尝试清理来自多语言网站上的搜索框的字符串 通常我会使用正则表达式 例如 allowed w s txt search preg replace allowed allowed iu 1 GET txt search 这对于英文文本来说
  • 如何以编程方式停止当前网站? [复制]

    这个问题在这里已经有答案了 我正在将 MVC 5 用于 Web 应用程序 Web 应用程序在 IIS 7 或更高版本中运行 在 Global asax 上application start 将设置许可证数量 protected void A
  • 中断accept()

    是否有操作系统可移植的方法来中断阻塞accept 我有一个多线程守护程序 服务 当守护程序 服务收到关闭信号时 需要优雅地关闭所有侦听网络主机 我看到有人说你应该使用非阻塞套接字或选择超时 但这些不会降低性能 因为我的应用程序应该尽可能快