Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Как сделать игровой сервак на php для delphi online игр   Найти похожие ветки 

 
Dr.Nemo   (2005-07-28 23:19) [0]

Как сделать игровой сервак на php для delphi online игр


 
MeF Dei Corvi ©   (2005-07-29 02:41) [1]

что ты подразумеваешь под игровым серваком? или какого жанра будет online игра?


 
Xeno ©   (2005-07-29 05:55) [2]

А зачем именно на php может проще на perl"е,и работать в разы быстрее будет?!


 
cyborg ©   (2005-07-29 07:51) [3]

У XProgera на сайте я видел небольшую статью.


 
XProger ©   (2005-07-29 16:25) [4]

http://xproger.mirg.ru/?id=1&doc=arena


 
Dr.Nemo   (2005-07-29 16:39) [5]

Нет ребята там я тоже был но там он с ошибками


 
Dr.Nemo   (2005-07-29 16:40) [6]

Если кто знает то найдите ошибку
<?php
 //В этом файле будет храниться список активных серверов
 $list_file = "db/arena_list.txt";
 // Узнаём IP адрес отправителя запроса
 $ip = $_SERVER["REMOTE_ADDR"];
 // Читаем номер порта из запроса
 $port = intval($_REQUEST["port"]);
 // Это от хитрых кулхацкеров ;)
 if (!($port >= 1024 && $port <= 65500))
  $port = 25666;
 // Читаем файл-список
 $lst = file($list_file);
 // В переменной $time теперь хранится текущее время
 $time = time();
 $j = -1;
 $i = 0;
 // Удаляем “мертвецов” и попутно ищем адрес отправителя в этом списке
 while ($i < count($lst)) {
  $lst[$i] = trim($lst[$i]);
  list($l_ip, $l_port, $l_time) = explode(":", $lst[$i]);
  // Если время с предыдущего пинга превысило 45 секунд – его явно уже нет
  if ($l_time < ($time - 45)) {
   for ($t = $i; $t < count($lst) - 1; $t++)
    $lst[$t] = $lst[$t + 1];
   unset($lst[count($lst) - 1]);
   continue;
  }
  if ($l_ip == $ip) $j = $i;
  $i++;
 }

 // Обработка запроса
 switch ($mode) {
  case "view":
   for ($i = 0; $i < Count($lst); $i++) {
    // Вывод очередного IP:Port из списка
    list($l_ip, $l_port, $l_time) = explode(":", $lst[$i]);
    echo $l_ip.":".$l_port." ";
   }
   break;
  case "ping":
   if ($j == -1)
    // Если пингуется впервые, значит новый сервер - добавляем
    array_push($lst, $ip.":".$port.":".$time);
   else {
    // Обновляем информацию для сервера
    // Заметьте, что при смене порта на сервере на арене он тоже изменится
    list($l_ip, $l_port, $l_time) = explode(":", $lst[$j]);
    $lst[$j] = $l_ip.":".$port.":".$time;
    }
   break;
 }

 // Обновляем список серверов в файле-списке
 $f = fopen($list_file, "a+");
 flock($f, LOCK_EX);
 ftruncate($f, 0);
 for ($i = 0; $i < count($lst); $i++)
  fwrite($f, $lst[$i]."\n");
 fflush($f);
 flock($f, LOCK_UN);
 fclose($f);
?>


 
Dr.Nemo   (2005-07-29 16:41) [7]

моя АСЯ 288618804


 
XProger ©   (2005-07-29 17:33) [8]

В ДНК твоя ошибка, сервер рабочий!


 
Dr.Nemo   (2005-07-30 13:51) [9]

но он не работает нечего нехочет записывать когда к ниму приходит запрос пинг!


 
Dr.Nemo   (2005-07-30 13:54) [10]

Где ОШИБКА?


 
Dr.Livsi   (2005-07-30 15:43) [11]

Да мне тоже выдаёт ошибку при отправке вот такого запроса на сервак http://host/arena.php?mode=ping&port=25666  
ошибка вот такая
Notice: Undefined index: port in y:\home\igra\www\arena.php on line 7
Notice: Undefined variable: mode in y:\home\igra\www\arena.php on line 33


 
Dr.Livsi   (2005-07-30 15:44) [12]

XProger © скажи где ошибка!


 
PAVIA ©   (2005-07-30 16:22) [13]

В сервере ошибок нет. Notice- это вобщето придупреждение а не ошибка.
Если ты делаешь запрос как ты написал http://host/arena.php?mode=ping&port=25666  ,то ошибок недолжно быть.


 
MeF Dei Corvi ©   (2005-07-30 17:07) [14]


> Да мне тоже выдаёт ошибку при отправке вот такого запроса
>

Возможно, что на используемом хостинге выключена опция, при включении которой все переменные передаваемые в запросе автоматически присваиваются соответствующим переменным скрипта.


 
XProger ©   (2005-07-30 19:14) [15]

$mode = $_REQUEST["mode"];
для таких случаев ;)


 
Dr.Nemo   (2005-08-01 14:56) [16]

спасибо


 
Dr.Nemo   (2005-08-01 16:25) [17]

при тправке такого запроса нечего не приходит
http://igra/arena.php?mode=view


 
Dr.Nemo   (2005-08-01 16:25) [18]

при отправке такого запроса нечего не приходит
http://igra/arena.php?mode=view


 
Dr.Nemo   (2005-08-01 16:34) [19]

при отправке такого запроса нечего не приходит
http://igra/arena.php?mode=view при этом список серверов стирается


 
Ландграф Павел ©   (2005-08-01 20:52) [20]

учи блин php...


 
XProger ©   (2005-08-01 21:12) [21]

Dr.Nemo, файл создал? запись разрешил? Таймаут в скрипте выставил?


 
cyborg ©   (2005-08-01 21:43) [22]


> [20] Ландграф Павел ©   (01.08.05 20:52)

прально!
рнр как  паскаль, только с гавёным сишным синтаксисом :)


 
XProger ©   (2005-08-01 21:46) [23]

cyborg, и с преобладанием гавёных вариантных типов! ;)


 
Dr.Nemo   (2005-08-01 22:30) [24]

у меня всё пишется пример
127.78.0.1:25666:1122987845
127.0.0.1:25666:1122919458

но при посылке виеф сервер только материться!



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.057 c
2-1135283527
Sysanin
2005-12-22 23:32
2006.01.15
Tregistry


3-1132044086
Leonid
2005-11-15 11:41
2006.01.15
Файл PDOXUSRS.NET и DBF-файлы


10-1110961006
mik1971
2005-03-16 11:16
2006.01.15
Использование dll, написанной в VB.NET в Delphi 7.


14-1134664936
Piter
2005-12-15 19:42
2006.01.15
Miranda ISEE


14-1135173301
Fl@sh
2005-12-21 16:55
2006.01.15
Пролог и выход с цикла