作者:曾宏安,华清远见嵌入式学院讲师。 我们在网络编程中常见的一种做法是:创建好套接字后以阻塞的方式读写,如果没有数据可读的话,程序会一直等待。事实上,网络状况一直不断变化,很有可能在通讯过程中出现网络连接断开。我们在程序中有必要对这种情况进行检测,从而及时做出响应。下面介绍几种常用的超时检测方法(假设我们要求通过套接字等待数据的最大时间为8秒): 一、 设置套接字接收超时 setsockopt可以设置套接字的属性,其中包括接收超时时间。参考代码如下 struct timeval tv; // 描述时间的结构体变量 ...... tv.tv_sec = 8; tv