套接字超时时间

文章讲述了套接字在发送(SO_SNDTIMEO)和接收(SO_RCVTIMEO)时的超时设置。非阻塞式套接字超时时间为0,而阻塞式套接字会依据设定的超时值等待。send/recv函数会根据超时字段判断操作模式,未准备好资源时,非阻塞式立即返回并设置errno,阻塞式则会挂起直至超时或IO事件发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超时时间,先判断当前套接字模式,非阻塞式套接字超时时间为0,阻塞式套接字读取对应的超时字段取值。当我们通过setsocketopt设置SO_SNDTIMEO/SO_RCVTIMEO选项时,其实就是给套接字的发送/接收超时字段进行赋值,没有设置的话默认无限大,也就是一直等下去。

send/recv函数执行时,判断发送/接收超时字段为0,则认为当前为非阻塞式模式,非0认为是阻塞式。若此时资源没有准备好,对于非阻塞式套接字,函数将直接返回,并设置errno,对于阻塞式套接字,进程将挂起直到发生了IO事件或者超时时间到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值