[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: UDP игровой сервер
Xpund
Добрый день, уже два дня парю себе мозг не могу получить информацию с upd.
Вот код:
function serverInfo($server) {
list($ip,$port) = explode(":", $server);
$timeStart = getmicrotime();
$fp = @fsockopen('udp://'.$ip, $port);
if($fp) {
stream_set_timeout($fp, 2);
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r");
$temp = fread($fp, 4);
$status = socket_get_status($fp);
if($status['unread_bytes']>0) {
$temp = fread($fp, $status['unread_bytes']);
$version = ord(getChar($temp));
$array = array();
$array['ping'] = (int)((getmicrotime() - $timeStart)*1000);
$array['status'] = "on";
if($version == 109) {
$array['ip'] = getString($temp);
$temp = substr($temp, 1);
$array['name'] = getString($temp);
$temp = substr($temp, 1);
$array['map'] = getString($temp);
$temp = substr($temp, 1);
getString($temp);
$temp = substr($temp, 1);
getString($temp);
$temp = substr($temp, 1);
$array['players'] = ord(getChar($temp));
$array['max_players'] = ord(getChar($temp));
} elseif($version == 73) {
getChar($temp);
$array['name'] = getString($temp);
$temp = substr($temp, 1);
$array['map'] = getString($temp);
$temp = substr($temp, 1);
getString($temp);
$temp = substr($temp, 1);
getString($temp);
$temp = substr($temp, 3);
$array['players'] = ord(getChar($temp));
$array['max_players'] = ord(getChar($temp));
}
}
else
$array['status'] = 'off';

}
return $array;
if ($array['status']== 'off') continue;



}


Всё заканчивается вот тут:
		if($status['unread_bytes']>0) {

Потому-что unread_bytes равно 0.

Что я делаю не так подскажите?
PS Сервер CS 1.6

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.