处理网络断开

2024-04-29

我正在尝试使用 HttpWebRequest 对象进行“长轮询”。

在我的 C# 应用程序中,我使用 HttpWebRequest 发出 HTTP GET 请求。然后,我使用 beginGetResponse() 等待响应。我正在使用 ThreadPool.RegisterWaitForSingleObject 等待响应或超时(1 分钟后)。

我已将目标 Web 服务器设置为需要很长时间才能响应。这样,我就有时间断开网线了。

发送请求后,我拔掉网线。

发生这种情况时有没有办法获得例外?这样我就不用等待超时了?

超时(来自 RegisterWaitForSingleObject)在 1 分钟超时到期后发生,而不是异常。

有没有办法确定网络连接是否已断开?目前,这种情况与Web服务器响应时间超过1分钟的情况没有区别。


我找到了一个解决方案:

在调用 beginGetResponse 之前,我可以在 HttpWebRequest 上调用以下代码:

req.ServicePoint.SetTcpKeepAlive( true, 10000, 1000)

我认为这意味着在 10 秒不活动后,客户端将向服务器发送 TCP“保持活动”。如果网络连接因网络电缆被拉断而中断,则保持活动状态将会失败。

因此,当拉动电缆时,我会在 10 秒内(最多)发送一个保持活动状态,然后发生 BeginGetResponse 的回调。在回调中,当我调用 req.EndGetResponse() 时,我得到异常。

不过,我想这违背了长轮询的好处之一。因为我们仍在发送数据包。

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

处理网络断开 的相关文章

  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p

随机推荐

  • 如何以可移植的方式验证 ANSI C 的标准输入缓冲区中是否有某些信息?

    我正在尝试用 ANSI C 开发一个可移植函数来验证标准输入缓冲区是否为空 这个想法是用它来验证用户是否按下了某个键 在 Windows 中 使用 kbhit 来自 conio h 很容易做到这一点 但它依赖于操作系统 不过 我想开发自己的
  • Xcode 6 本地化无法读取字符串文件

    Xcode 无法生成 xliff 本地化文件并出现错误本地化无法读取字符串文件 请检查系统日志以获取更多详细信息 有谁知道我在哪里可以找到这些日志 它是 Xcode 6 3 2 GM 但我也尝试过 6 3 1 版本 同 6 3 1 错误发生
  • 能否为一种 XAML 样式定义多个 TargetType?

    在 HTML CSS 中 您可以定义可应用于多种类型元素的样式 例如 highlight color red 可以应用于 P 和 DIV 例如 p class highlight this will be highlighted p div
  • 为什么C的数据段被分成两部分?

    所有全局初始化值都存储在 data段 即已初始化的数据段和未初始化的值存储在bss编译器将这些未初始化的值自动初始化为零bss Then why data段被分隔为 data and bss 是否有优势 或者有什么好处 C 编程语言 它是用
  • Xcode 在 Swift 2.2 和 Swift 3.0 之间切换

    自从我下载了新的 Xcode 并转换 更新了我的语法以来 Xcode 一直在上述 Swift 版本之间随机切换 我在终端中运行了 swift version 它确认 目前 我正在运行 Swift 2 2 我看到这个问题 Swift 编译器混
  • Semaphore.wait(timeout: .now()) 的目的是什么?

    看了一些苹果代码示例 我发现了这一点 func metadataOutput output AVCaptureMetadataOutput didOutput metadataObjects AVMetadataObject from co
  • “sdist”.tar.gz 发行版和 python Egg 有什么区别?

    我有一点困惑 似乎有两种不同类型的 Python 包 源代码发行版 setup py sdist 和 Egg 发行版 setup py bdist egg 两者似乎只是具有相同数据 Python 源文件 的档案 一个区别是pip最推荐的包管
  • 可扩展列表视图未扩展

    您好 需要像这样准备屏幕 这是我的可扩展列表视图的代码 适配器类 新适配器 java public class NewAdapter extends BaseExpandableListAdapter public ArrayList
  • libicuuc.so.55:无法打开共享对象文件

    当我使用 swift build 进行编译时 我的 Ubuntu 机器上出现以下错误 swift build home xxxxxxxxx Downloads swift DEVELOPMENT SNAPSHOT 2016 02 25 a
  • 是否可以使用 ES6/Babel 进行多个类导入?

    我正在开发一个反应项目 我的第一个项目 最近我重组了我的文件夹结构以使其更有意义 为了让我的生活更轻松 在我的组件文件夹中 我有一个index js文件如下所示 export from App export from Home export
  • 如何使用 compose 将 docker 卷安装到我的 docker 项目中?

    我有一个 Maven 项目 我正在 Docker 内运行 Maven 构建 但问题是 每次运行它时 它都会下载所有 Maven 依赖项 并且不会缓存任何 Maven 下载 我找到了一些解决方法 将本地 m2 文件夹挂载到 Docker 容器
  • 如何在输入数字时在数字输入字段中添加破折号?

    我正在尝试使用 javascript 将破折号插入到 html 数字字段中4th输入时输入数字 我在模糊中执行此操作 而不是在按键 按键上等中执行此操作 但是当我尝试将功能更改为on key press on key up事件它没有给出预期
  • 将耗时的进程从我的 ASP.NET 应用程序中移走

    我的 Asp net 应用程序生成动态 pdf 有时这需要一段时间 并且是一个相当繁重的过程 实际上我不希望我的用户等待pdf 只需在生成后将其发送到那里的邮件即可 所以我尝试了网络服务 我将一个 id 从数据库获取数据 和一些字符串传递给
  • AngularJS:使用控制器和 ng-repeat 重新加载 div 上的数据

    我是 Angular JS 的新手 正在学习它 我有一个 div 并在启动时使用控制器从 json 加载数据 代码如下 但我想在执行特定操作后 json 对象发生更改时再次重新加载它 索引 html DOCTYPE html PUBLIC
  • Angular:core.module 风格发生了什么?

    Tl dr 看来是core module风格不再是官方的一部分角度风格指南 https angular io guide styleguide 但它一定是最近才被删除的 导入单例服务的新最佳实践是什么 为什么删除了该样式 我刚刚读过this
  • 使 JavaScript 画布矩形可点击

    我正在创建一个简单的计算器 Here http startupsandfinance com online calculator html这是 我几乎完成了基本设计 但我对如何使按钮可点击感到困惑 一个技巧可能是为每个按钮创建一个 div
  • 如何计算给定坐标处相机可见矩形的大小? [复制]

    这个问题在这里已经有答案了 我制作了一个小型的 Three js 应用程序 它将一堆圆圈从画布的底部移动到顶部 let renderer scene light circles camera initialize animate funct
  • 是否可以要求您的用户清除您网站的 HTTP 严格传输安全 (HSTS)?

    如果您为具有较长生命周期的网站打开 HSTS 但后来决定将其关闭 例如由于第三方软件的问题 是否可以警告用户清除其 HSTS 缓存 要关闭服务器的 HSTS 请发送以下标头 Strict Transport Security max age
  • 如何修复缺少结束标签的 xml 文件

    我有一个如下所示的 xml 文件 它缺少结束标签 这是一个大约 10000 行的巨大文件 我该如何解决
  • 处理网络断开

    我正在尝试使用 HttpWebRequest 对象进行 长轮询 在我的 C 应用程序中 我使用 HttpWebRequest 发出 HTTP GET 请求 然后 我使用 beginGetResponse 等待响应 我正在使用 ThreadP