check($ip, $port); if ($val['status'] != $status) { ServerTable::update(['status' => $status], ['id' => $val['id']]); } } sleep(60); } } /** * @param string $ip ip * @param int $port 端口 * @return int 返回状态 */ public function check($ip, $port) { $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_nonblock($sock); socket_connect($sock, $ip, $port); socket_set_block($sock); $status = socket_select($r = array($sock), $w = array($sock), $f = array($sock), 2); return $status; } }