我正在攻读PHP 5认证考试.练习考试中提到了这个功能.
function stream_set_blocking():
在流上设置阻塞或非阻塞模式.
此函数适用于支持非阻塞模式的任何流(当前,常规文件和套接字流).
从高级别和低级别的角度来看,阻塞模式和非阻塞模式流如何在PHP中表现?什么是套接字流和非套接字流?赞赏的例子.
mar*_*rio 28
阻塞/非阻塞模式表示fread/fwrite函数是否会立即返回.进入时non-blocking mode,他们将返回任何可用数据.如果在调用函数时没有数据可以读取,则不会返回任何数据.这种流在循环中被典型地轮询.
在blocking mode但是,函数总是等待(并因此阻止你的程序的执行),直到它能够满足完整的读请求.如果您要求从网络套接字读取1MB,则该函数将在收到1MB传递后才会返回.
我认为维基百科非常清楚:http:
//en.wikipedia.org/wiki/Berkeley_sockets#Blocking_vs._non-blocking_mode
它主要对网络文件/流源有影响.对于本地文件系统,操作系统将始终读取所需的数据长度.PHP也有流包装器,它可以自行决定处理该选项(没有可靠的通用规则).
有关更多低级别的详细信息,请访问fnctl(2)或socket(2)或http://www.scottklement.com/rpg/socktut/nonblocking.html的联机帮助页