如何检查套接字在一段时间内没有收到
Posted
技术标签:
【中文标题】如何检查套接字在一段时间内没有收到【英文标题】:how to check socket is not receiving for a time period 【发布时间】:2016-04-25 05:00:01 【问题描述】:在我的应用程序中,两个不同的套接字正在接收和发送周期性数据。如果在特定时间段内没有接收或发送,我需要关闭套接字。由于我使用的是连续流动的周期性数据,因此我之前无法设置发送和接收的数量。请帮我找出套接字在一段时间内没有接收或发送的方式
【问题讨论】:
How to create a Minimal, Complete, and Verifiable example. 还请提供迄今为止为尝试解决手头问题所做的任何研究或尝试。 您可以使用select
在您的套接字上等待 I/O:它接受最长等待时间,因此如果当它返回时没有任何迹象表明预期的 I/O 活动,您可以关闭所涉及的套接字....查看手册页并在谷歌上搜索一些示例,编写代码,如果遇到困难,请返回此处提供代码和具体问题。
【参考方案1】:
使用 SO_RCVTIMEO 在套接字上设置读取超时。如果过期,recv()
将返回 -1 和 errno == EAGAIN/EWOULDBLOCK
。
【讨论】:
以上是关于如何检查套接字在一段时间内没有收到的主要内容,如果未能解决你的问题,请参考以下文章