在socket_connect中,可以通过以下方式在不出现PHP错误的情况下判断服务器是否活动:
下面是一个示例代码:
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($socket);
if (socket_connect($socket, '服务器IP地址', '服务器端口号') === false) {
if (socket_last_error($socket) != SOCKET_EINPROGRESS) {
// 连接失败,服务器不活动
echo "服务器不活动";
} else {
// 连接正在进行中,使用socket_select检查socket是否可写
$write = array($socket);
$except = array();
$timeout = array('sec' => 5, 'usec' => 0); // 设置超时时间为5秒
if (socket_select($write, $except, $except, $timeout) > 0) {
// socket可写,连接成功,服务器是活动的
echo "服务器是活动的";
} else {
// socket不可写,连接超时,服务器不活动
echo "服务器不活动";
}
}
}
socket_close($socket);
?>
请注意替换代码中的"服务器IP地址"和"服务器端口号"为实际的服务器地址和端口号。
腾讯云相关产品推荐:
以上是腾讯云提供的一些相关产品,供参考使用。
领取专属 10元无门槛券
手把手带您无忧上云