Доброго времени суток вообщем у меня такая проблема, делаю мониторинг игровых серверов, получаю данные от сервера (кол. игроков, имя сервера и т.д) с помощью fsockopen через цикл while делает подключение к серверам которые добавлены в бд, вообщем все работает хорошо, но при добавлении нерабочего сервера.. начинает длительное время грузить страницу сайта, он ее загружает но в итоге показывает пустую информацию о не рабочем сервере вообщем как можно исправить? таймаут на подключение не работает... вообщем вот код подключения к серверу Проблема в долгой загрузке сайта, когда добавлен в список не рабочий сервер.. И еще вопросик, как лучше быть чтобы прогружало сайт как можно быстрее с большим количеством серверов? Код fsockopen Код (PHP): <?php do { $ip = $row['ip']; //ip-адрес игрового сервера $port = $row['port']; //порт на игровом сервере для подключения $fp = fsockopen('udp://' . $ip, $port, 2); stream_set_timeout($fp, 1, 0); stream_set_blocking($fp, true); if (!$fp) { echo "Ошибка подключения: "; } else { $packet = "SAMP"; $packet .= chr(strtok($ip, ".")); $packet .= chr(strtok(".")); $packet .= chr(strtok(".")); $packet .= chr(strtok(".")); $packet .= chr($port & 0xFF); $packet .= chr($port >> 8 & 0xFF); fwrite($fp, $packet."i"); @fread($fp, 11); @$is_passworded = ord(fread($fp, 1)); @$plr_count = ord(fread($fp, 2)); @$max_plrs = ord(fread($fp, 2)); @$strlen = ord(fread($fp, 4)); @$hostname = fread($fp, $strlen); @$strlen = ord(fread($fp, 4)); @$gamemode = fread($fp, $strlen); @$strlen = ord(fread($fp, 4)); @$mapname = fread($fp, $strlen); echo '<div class="servers"> <div class="servers_info"> <div class="name_serv">' .$hostname. '</div> <div class="players_serv">' .$plr_count.'/'.$max_plrs. '</div> <div class="mode_serv">' .$gamemode. '</div> </div> </div> <div class="play"> <div class="text_play"> PLAY! </div> </div> </br>'; fclose($fp); } } while($row= mysqli_fetch_assoc($query)) ?> Пример работы сайта с добавленным нерабочим сервером a0034544.xsph.ru ( не реклама) Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
Можно по подробнее?? Этот термин я еще не слыхал) "фоне" Добавлено спустя 33 минуты 24 секунды: А если сделать так, херачим эту функцию fsockopen в крон задачу с интервалом запуска 10-15 сек, данные после каждого запуска перезаписываются в бд, а на гл. страничке мы тупо уже выводим данные с бд или это будет большая нагрузка на сервер если будет около 2-3к ип адресов? возможно будет большая часть не серверов "не отвечать на запрос" и будет долгая загрузка ...
ну вот как раз вариант сканировать в фоне, заносить в бд и потом показывать из нее - самый хороший. 2-3к адресов не проблема.