[阻塞和非阻塞]

简介:

[阻塞和非阻塞]
在通过socket发送数据时,如果直到数据发送完毕才返回的方式,也就是说如果我们使用send( buffer, 100.....)这样的函数发送100个字节给别人,我们要等待,直到100个自己发送完毕,程序才往下走,这样就是阻塞的,
而非阻塞的方式,当你调用send(buffer,100....)以后,立即返回,此时send函数告诉你发送成功,并不意味着数据已经向目的地发送完毕,甚至有可能数据还没有开始发送,只被保留在系统的缓冲里面,等待被发送,但是你可以认为数据在若干时间后,一定会被目的地完整正确的收到,我们要充分的相信tcp。
阻塞的方式会引起系统的停顿,一般网络游戏里面使用的都是非阻塞的方式,

[tcp和udp]
tcp可以理解为一条连接两个端子的隧道,提供可靠的数据传输服务,
只要发送信息的一方成功的调用了tcp的发送函数发送一段数据,
我们可以认为接收方在若干时间以后一定会接收到完整正确的数据,
不需要去关心网络传输上的细节,
而udp不保证这一点,
对于网络游戏来说,tcp是普遍的选择。
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2010/04/09/1708003.html如需转载请自行联系原作者

jiahuafu

相关文章
|
7月前
非阻塞
非阻塞
32 0
|
8月前
|
Linux
网络编程之阻塞与非阻塞的理解
网络编程之阻塞与非阻塞的理解
71 0
|
9月前
|
UED
阻塞与非阻塞问题
阻塞与非阻塞是计算机领域中常见的两种I/O模型,用来描述在进行输入输出操作时程序的行为方式。下面将详细介绍阻塞和非阻塞的概念、特点、应用场景以及它们之间的区别。
80 0
|
JSON 负载均衡 前端开发
阻塞与非阻塞客户端
本文主要讲解响应式编程模式下,阻塞与非阻塞式客户端的正确使用方式。
同步、异步、阻塞、非阻塞
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 真正意义上的 异步IO 是说内核直接将数据拷贝至用户态的内存单元,再通知程序直接去读取数据。
968 0
同步,异步,阻塞和非阻塞
同步,异步,阻塞和非阻塞的理解
1636 0