原创 什么叫阻塞,非阻塞,异步,同步?

2008-8-26 11:35 4522 6 7 分类: 软件与OS

对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。


同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。


阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。  

文章评论1条评论)

登录后参与讨论

用户377235 2013-9-10 09:50

同步和异步是不弄反了!?
相关推荐阅读
用户6646 2010-06-09 16:44
Linux C中令人讨厌的段错误
作者:孙晓明,华清远见嵌入式学院讲师同学们在做练习的时候,编译完程序,执行的时候,有时会莫名的出现 “Segment fault”,即段错误,段错误是让许多C程序员都头疼的提示,因为对于这种模糊的提示...
用户6646 2010-06-09 13:06
VC6 显示行号 (无限制注册版)
make编译时出现错误, 会提示哪一行。可惜vc中不能显示行号,很是郁闷。这个插件可以显示行号,呵呵,很有用。VC显示行号插件说明-----------------------------------...
用户6646 2010-05-22 10:07
删除 nero search 的有效方法
不知道从什么时候开始,Nero多出来一个绑定的Nero Search,虽然可以不然它显示,可是他仍然会在后台占用资源。可以用以下方法解决:开始->运行,依次输入下列文字回车、确定即可(每次输一行...
用户6646 2010-04-03 08:46
2007年5月22日完成的全电控小电视(版本V2.0)
基础功能部分写了4000多行汇编,加上遥控红外部分达到了6000多行,大体介绍如下:1. 内置开关电源转换,11-37V供电;2. 全轻触操作,无机械可调器件,PWM调节亮度/色彩/背光;3.按钮有:...
用户6646 2010-03-17 09:41
三极管HFE与β的关系
hfe是三极管H参数,全称“共发射极低频小信号输出交流短路电流放大系数”,在等效四端网络中又叫“h21”。β是Ic与Ib函数关系的普遍表达式,尤其特指在晶体管基区中电流的分配关系。无论在教科书还是在应...
用户6646 2010-03-17 09:35
三极管饱和(2)
from:http://blog.ednchina.com/xcbao/10816/category.aspx本图片来自于<模拟集成电路的分析与设计>,用来表现三极管饱和时的carriers的分布。但...
我要评论
1
6
关闭 站长推荐上一条 /2 下一条