English | 简体中文 | 繁體中文
查询

socket_set_timeout()函数—用法及示例

「 设置给定套接字的超时时间 」


函数名称:socket_set_timeout()

适用版本:所有PHP版本

用法:socket_set_timeout(resource $socket, int $seconds, int $microseconds = 0): bool

函数描述:socket_set_timeout() 函数用于设置给定套接字的超时时间。超时时间指定了在读取或写入操作时等待数据的最长时间。

参数:

  • $socket:必需,一个有效的套接字资源,通过 socket_create() 或 socket_accept() 等函数创建。
  • $seconds:必需,指定超时时间的秒数。如果设置为0,表示禁用超时。
  • $microseconds:可选,指定超时时间的微秒数。默认为0。

返回值:成功时返回 true,失败时返回 false。

示例:

// 创建套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// 设置超时时间为10秒
if (socket_set_timeout($socket, 10) === false) {
    echo "设置超时时间失败";
}

// 连接到服务器
if (socket_connect($socket, '127.0.0.1', 8080) === false) {
    echo "连接服务器失败";
}

// 发送数据
$data = "Hello, server!";
if (socket_write($socket, $data, strlen($data)) === false) {
    echo "发送数据失败";
}

// 读取服务器响应,最多等待5秒
if (($response = socket_read($socket, 1024)) === false) {
    echo "读取服务器响应失败";
}

// 关闭套接字
socket_close($socket);

在上面的示例中,我们首先创建了一个套接字,然后使用 socket_set_timeout() 函数设置超时时间为10秒。接下来,我们使用 socket_connect() 函数连接到服务器,并使用 socket_write() 函数发送数据。然后,使用 socket_read() 函数读取服务器的响应,最多等待5秒。最后,我们使用 socket_close() 函数关闭套接字。

注意:在实际使用中,根据具体需求,可以根据实际情况调整超时时间的设置。

补充纠错
上一个函数: socket_strerror()函数
下一个函数: socket_set_option()函数
热门PHP函数
分享链接