【发布时间】:2015-06-08 14:32:41
【问题描述】:
大家好,我有一个关于 c 超时的问题,所以我问你们。
所以我正在用 C 语言制作一个服务器应用程序,它使用 POSIX 线程来接受多个简单的连接,但实现超时比我预期的要难,因为我首先阅读了部分消息(HTTP 请求),而不是标题等,等等,我最初使用 select() 来检测套接字是否已准备好读取,但是如果客户端仅发送起始行,那么服务器将继续等待标头和正文而不会超时,所以我所做的是我将读取消息的所有代码放在一个函数中,我不想为整个函数实现超时,比如如果函数在 x 秒内没有返回,则调用超时函数并退出线程......
[我尝试过的事情]
- 进行了多个选择调用(每个套接字读取一个),但最终导致不得不计算每个操作的剩余时间的混乱。
- 我实际上并没有尝试使用警报信号,因为我听说信号会影响整个过程,而不是会导致每个并行连接超时的特定线程。..
提前谢谢.. B)
【问题讨论】:
-
分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见how to ask
-
我没有在这里找到问题?
-
@Eregrith 感谢您的回复,编辑了帖子。
-
@Frxstrem 如果函数未在 x 秒内返回,我正在尝试使函数超时..
标签: c multithreading timeout