引言
在网络的配置中,有两个概念分别为:阻塞,非阻塞。阻塞情况下,当读一个socket套接字,即使没有数据也会一直等待。而非阻塞情况下,当读一个socket套接字,只会检测一瞬间,如果没有数据就离开,有数据则读出。这两种都是比较极端的方法,因此就有一个中间状态:超时控制。
超时控制会是比较常用介于阻塞与非阻塞的一种方法,既不是无限等待数据的到来,也不是只等待一瞬间,可以设置为5分钟或者10分钟都可以。
设置超时
- 通过
setsockopt
设置套接字属性实现超时
2.使用select
函数超时控制
3.使用poll函数实现超时控制
4.使用定时器alarm函数发送信号设置超时
(5s后,自动发送SIGALRM信号)