win32 socket阻塞与非阻塞函数及设置

本文介绍了Win32 Socket中默认阻塞的函数如accept()、send()和recv(),并阐述了send()与recv()的阻塞原理。send()负责将数据放入发送缓冲区,而recv()则从接收缓冲区读取数据。阻塞状态可通过ioctrlsocket()函数调整,阻塞时限可使用setsockopt()函数设定。欲了解更多详情,请参考相关资料。

win32 socket中有些函数是默认阻塞的,比如accept(),send(),recv()等等,其中send()与recv()的阻塞概念与accept()的阻塞概念不同。

send()与recv()只是完成数据的拷贝工作,即send()函数仅仅是将数据放到发送缓冲区中,至于实际的发送工作由网络协议完成;recv()函数仅仅是从接收缓冲区中读取数据,实际接收数据的操作由网络协议完成。send()的阻塞主要由发送数据填满发送缓冲区产生的,recv()的阻塞则是由接收缓冲区中没有数据可读引起的。

socket阻塞与非阻塞的设置由函数ioctrlsocket()函数完成,相应的阻塞时限由函数setsockopt()进行设置。详见参考资料。

参考资料1相关设置函数

参考资料2相关概念


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值