Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Взять данные из программы, PHP программой.
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Взять данные из программы, PHP программой.

Страниц (1): [1]
 

1. k0ma - 05 Июня, 2015 - 10:05:56 - перейти к сообщению
Родитлась идея написать небольшую страничку, которая будет выводить данные из другой программы, если быть точнее из игр. Стоит сервер, а нем крутятся демоны серверов игровых, хотелось бы сделать такое самому.
Подскажите чем и как это делать? или проще скачать готовое и разобраться?
Понял что это сокеты... Думаю уже не плохо? Улыбка
Начал делать по статье и напоролся на отчет программы, к которой я создал сокет.
Ответ, а именно
CODE (htmlphp):
скопировать код в буфер обмена
  1. throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");

приходит в ?????????????? таком виде, подскажите что поменять и где чтобы понять что там за ошибка?
http://i-novice[dot]net/sokety-v-php/ сылка на сокеты.
(елаю клиентскую чать)
2. dcc0 - 05 Июня, 2015 - 11:53:30 - перейти к сообщению
Многие игровые сервера предоставляют встроенные функции для работы с веб. Наверняка, речь идет о статистике. Посмотрите описание конкретного игрового сервера для начала.


Вы задаете очень абстрактный вопрос.
Пишите конкретно - сервер такой-то игры, такой-то версии, надо вывести некие результаты персонажей игры, надо вывести на страницу.
3. k0ma - 05 Июня, 2015 - 13:13:13 - перейти к сообщению
dcc0 пишет:
Многие игровые сервера предоставляют встроенные функции для работы с веб. Наверняка, речь идет о статистике. Посмотрите описание конкретного игрового сервера для начала.


Вы задаете очень абстрактный вопрос.
Пишите конкретно - сервер такой-то игры, такой-то версии, надо вывести некие результаты персонажей игры, надо вывести на страницу.

Вы права, прошу извинить, сам ненавижу, когда так делают.
Интересует игра Quake3arena
Создал сервер, к нему цепляюся люди, хочу видеть кто играет в данынй момент, счет, какая карта, сколько времени до конца матча, и тд.
Думаю по аналогии с Ку3 потом сделать что-то еще. (Dota2)

PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  5.         <link rel="stylesheet" href="css/style.css" type="text/css">
  6. <title> Прием заявок </title>
  7. </head>
  8. <body>
  9. <?PHP
  10. $address='127.0.0.1';
  11. $port=27960;
  12. #header('Content-Type: text/plain;');
  13. error_reporting(E_ALL ^ E_WARNING);
  14. try {
  15. echo 'Create socket ... ';
  16. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  17. if ($socket < 0) {
  18. throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
  19. } else {
  20. echo "OK\n";
  21. }
  22.  
  23. echo 'Connect socket ... ';
  24. $result = socket_connect($socket, $address, $port);
  25. if ($result === false) {
  26. throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");
  27. } else {
  28. echo "OK\n";
  29. }
  30. echo 'Server said: ';
  31. $out = socket_read($socket, 1024);
  32. echo $out."\n";
  33. $msg = "Hello, Server!";
  34. echo "Say to server ($msg) ...";
  35. socket_write($socket, $msg, strlen($msg));
  36. echo "OK\n";
  37. echo 'Server said: ';
  38. $out = socket_read($socket, 1024);
  39. echo $out."\n";
  40. $msg = 'shutdown';
  41. echo "Say to server ($msg) ... ";
  42. socket_write($socket, $msg, strlen($msg));
  43. echo "OK\n";
  44. }
  45. catch (Exception $e) {
  46. echo "\n!<br> Error: ".$e->getMessage();
  47. echo "<br>Тип \$е - ".gettype($e)."<br>";
  48. echo "<pre>";
  49. var_dump ($e);
  50. echo "</pre>";
  51. echo "<br>";
  52. }
  53. if (isset($socket)) {
  54. echo 'Close socket ... ';
  55. socket_close($socket);
  56. echo "OK\n";
  57. }
  58. ?>
  59. </body>
  60. </html>


в ответ вижу чтото типа
CODE (htmlphp):
скопировать код в буфер обмена
  1.  Create socket ... OK Connect socket ... !
  2. Error: socket_connect() failed: &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;, &#65533;.&#65533;. &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;.
  3. Тип $е - object
  4.  
  5. object(Exception)#1 (7) {
  6.   ["message":protected]=>
  7.   string(109) "socket_connect() failed: &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;, &#65533;.&#65533;. &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;.
  8.  
  9. "
  10.   ["string":"Exception":private]=>
  11.   string(0) ""
  12.   ["code":protected]=>
  13.   int(0)
  14.   ["file":protected]=>
  15.   string(34) "C:\apache\localhost\test\index.php"
  16.   ["line":protected]=>
  17.   int(28)
  18.   ["trace":"Exception":private]=>
  19.   array(0) {
  20.   }
  21.   ["previous":"Exception":private]=>
  22.   NULL
  23. }
  24. Close socket ... OK

 

Powered by ExBB FM 1.0 RC1