2016-04-25 54 views
1

在我的应用程序中,两个不同的套接字正在接收和发送周期性数据。如果在特定时间段内没有收到或发送,我需要关闭套接字。由于我使用的是连续流动的周期性数据,我以前无法设置发送和接收的数量。请帮我找出一段时间内套接字未收到或发送的方式如何检查套接字在一段时间内未收到

+0

[如何创建一个最小,完整和可验证的示例。](http://stackoverflow.com/help/mcve)同时请包括任何研究或迄今为止尝试解决当前问题的尝试。 –

+0

您可以使用'select'来等待您的套接字上的I/O:它接受一个等待的最长时间段,所以如果它返回时没有预期的I/O活动的指示,您可以关闭涉及的套接字......看看手册页和谷歌的一些例子,编写你的代码,如果你遇到困难,请回到这里与你的代码和具体问题。 –

回答

0

用SO_RCVTIMEO在套接字上设置读取超时。如果到期,recv()将返回-1与errno == EAGAIN/EWOULDBLOCK