Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

Как сделать игровой сервак на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.013 c
3-1132235404
CasperR
2005-11-17 16:50
2006.01.15
ODAC for Delphi 2005


2-1135336738
oleg777
2005-12-23 14:18
2006.01.15
не работает запрос к sysusers


14-1135158514
grisme
2005-12-21 12:48
2006.01.15
ШАХМАТЫ


1-1134460627
Antonn
2005-12-13 10:57
2006.01.15
Динамическое создание формы


5-1120978357
Серджио_Точини
2005-07-10 10:52
2006.01.15
Создание компонента для ввода двоичных чисел с фикс. запятой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский