socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_set_block在套接字上设置阻塞模式

描述

socket_set_block(Socket $socket): bool

The socket_set_block() 函数将从由 socket 参数指定的套接字上移除 **O_NONBLOCK** 标志。

当对阻塞套接字执行操作(例如接收、发送、连接、接受...)时,脚本将暂停执行,直到它收到信号或能够执行该操作。

参数

socket

使用 socket_create()socket_accept() 创建的 Socket 实例。

返回值

成功时返回 **true**,失败时返回 **false**。

变更日志

版本 描述
8.0.0 socket 现在是一个 Socket 实例;以前是一个 resource

示例

示例 #1 socket_set_block() 示例

<?php
$socket
= socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

此示例在端口 1223 上的所有接口上创建一个监听套接字,并将套接字设置为 **O_BLOCK** 模式。 socket_accept() 将挂起,直到有连接可以接受。

参见

添加笔记

用户贡献的笔记 1 个笔记

laacz at laacz dot lv
9 年前
除了 true 和 false 之外,如果不小心,socket_set_block 可能会返回 NULL。如果将非套接字资源作为第一个参数传递,就会发生这种情况。

例如 socket_set_block(false)) 将返回 NULL 并发出警告,指出您正在尝试对非套接字进行操作。
To Top