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

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

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

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

参考资料1相关设置函数

参考资料2相关概念


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

上一篇:C#中的Params、ref、out的区别


下一篇:JQuery Ajax操作常用的API:serializeArray、serialize、param的区别和使用