首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用轮询的套接字响应超时

使用轮询的套接字响应超时
EN

Stack Overflow用户
提问于 2012-02-10 01:52:55
回答 1查看 647关注 0票数 0

我有一个现有的多线程C++程序,它使用一个套接字池进行读写。发送器线程使用下一个可用套接字发送HTTP请求。接收器轮询套接字的池(使用poll()方法)并读取HTTP响应。接收器线程如何从池的套接字中检测到可能的HTTP响应超时?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-10 02:02:38

简单举个例子:

  1. 当您发送请求时,创建一个包含fd的对象,您需要的任何逻辑连接信息,以及您认为它超时的绝对时间
  2. 保持这些对象的优先级队列按时间排序,因此最快到期的总是在前面(如果所有请求都获得相同的超时,这将退化为先进先出队列)
  3. 当您轮询时,计算从现在到队列中第一个绝对时间的超时如果poll返回0(或每次它唤醒),则计算超时时间
  4. 获取当前时间并遍历队列超时任何超时时间在过去的请求
  5. 当您获得成功的响应时,您还需要从队列中删除相关的对象
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9216101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档