除了 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 — 设置套接字的阻塞模式
函数 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 并发出警告,表明您正在尝试对非套接字执行操作。