除了 true 和 false 之外,如果不小心,socket_set_block 可能会返回 NULL。如果将非套接字资源作为第一个参数传递,就会发生这种情况。
例如 socket_set_block(false)) 将返回 NULL 并发出警告,指出您正在尝试对非套接字进行操作。
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
socket_set_block — 在套接字上设置阻塞模式
The socket_set_block() 函数将从由 socket
参数指定的套接字上移除 **O_NONBLOCK
** 标志。
当对阻塞套接字执行操作(例如接收、发送、连接、接受...)时,脚本将暂停执行,直到它收到信号或能够执行该操作。
示例 #1 socket_set_block() 示例
<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);
socket_accept($socket);
?>
此示例在端口 1223 上的所有接口上创建一个监听套接字,并将套接字设置为 **O_BLOCK
** 模式。 socket_accept() 将挂起,直到有连接可以接受。
除了 true 和 false 之外,如果不小心,socket_set_block 可能会返回 NULL。如果将非套接字资源作为第一个参数传递,就会发生这种情况。
例如 socket_set_block(false)) 将返回 NULL 并发出警告,指出您正在尝试对非套接字进行操作。