Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.10.2010, 11:25
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 1  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Arrow Socket Server для Flash-игры на PHP

Собственно суть проблемы.
Есть Windwos 7, в VirtualBox'e крутится сервер Ubuntu с Apache, есть роутер для выхода в интернет с выделенным IP. Все настроено таким образом, что сайт в Apache виден из-вне по адресу 91.200.106.130 . Также настроен Forwarding в роутере с портов 80,843,10014 на Ubuntu, у которого есть свой внутри-сетевой IP (192.168.1.105).

Есть 2 скрипта на php для запуска сокет сервера на 843 порт для передачи crossdomain.xml , и на 10014 порт.

В Ubuntu через командную строку запускаю эти 2 скрипта:
Код:
php .../socketServer.php &
sudo php .../policySocketServer.php &
(Ошибок и Warning нет, даже если без & запускать)

После чего проверяю:
Код:
ps -aux | grep php
и видно 3 процесса один из которых "--color=auto php" а другие 2 - запущенные скрипты.

Так вот проблема: ни флэш ни Windows telnet не подключаются к портам 843 и 10014, ни по адресу внешнему (91.200.106.130), ни по внутри-сетевому (192.168.1.105).
Код:
Microsoft Telnet> o 91.200.106.130 10014
Подключение к 91.200.106.130...Не удалось открыть подключение к этому узлу, на порт 10014: Сбой подключения
На подключение на порт 80 оно долго думает и потом говорит
Код:
Нажмите любую клавишу...
И после
Код:
Подключение к 91.200.106.130...

Подключение к узлу утеряно.

Microsoft Telnet>
Я так понимаю подключение было - это уже хорошо. Но почему на другие порты не удается подключиться? Может дело в скриптах или настройке Ubuntu? Тем не менее в Windows 7 встроенный фаерволл вырубил полностью, но это не помогло.

И вот еще скрипты которые я собственно и запускаю (вложения)
Вложения
Тип файла: zip sock_serv.zip (2.8 Кб, 82 просмотров)
__________________
x << 2;

Старый 09.10.2010, 13:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Зачем апач для сокетов? Какая-то очень сложная схема подключения... а зачем так сложно? Почему линукс из-под виндивса, а не наоборот (такой вариант изначально ущербный)? Я так понимаю это для тестов делается? - зачем вообще тогда в виртуализации запускать сервер, он точно так же и в виндовсе работать будет.
__________________
Hell is the possibility of sanity

Старый 09.10.2010, 14:10
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 3  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Да, для тестов. Обычный Apache для Windows решил не использовать потому как он периодически вылетает у меня на 7-ке, чего на XP раньше не было. Знакомый мне посоветовал Ubuntu, так как в конечном варианте спонсорский сервер будет тоже на ней запускаться.
В теории вроде бы все сделано верно, но почему такой способ может не работать
__________________
x << 2;

Старый 09.10.2010, 14:17
membrilius вне форума Посмотреть профиль Отправить личное сообщение для membrilius Найти все сообщения от membrilius
  № 4  
Ответить с цитированием
membrilius
 
Аватар для membrilius

Регистрация: Aug 2008
Сообщений: 258
Я вообще не понимаю зачем Windows. Вы с домашнего компа сервера делаете? Это какой-то Evil Edition.

Старый 09.10.2010, 15:34
afarber вне форума Посмотреть профиль Отправить личное сообщение для afarber Посетить домашнюю страницу afarber Найти все сообщения от afarber
  № 5  
Ответить с цитированием
afarber
 
Аватар для afarber

Регистрация: May 2006
Адрес: Germany
Сообщений: 74
А вот я не согласен с предыдущими ораторами.

Например я плачу хостеру strato.de за 4-х процессорный сервер с CentOS Linux 5.5.

И в тоже время у меня дома под Windows XP и на другом под Windows 7 стоит VMWare Workstation и на нем виртуальная машина точно с таким же CentOS Linux, и все так же скофигурированно.

И это очень удобно, удобнее чем если бы у меня был Apache для Windows, PostgreSQL для Windows, Cygwin и т.д. (так я начинал). Если в каких-нибудь изменениях я не уверен, то делаю snapshot в VMWare или даже копирую всю VM на DVD-диски...

Жаль что у Вас не VMWare, а то я может быть помог.

Посмотрите "netstat -an", слушают ли программки (LISTENING) на нужных портах. Проверьте firewalls (и на Windows и на Linux: iptables -L)

Поставьте сниффер для Windows - Wireshark и посмотрите на пакеты.

пока

Старый 09.10.2010, 16:20
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 6  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Спасибо за помощь, но это не все
Комманда "netstat -an" не вывела портов 843 или 10014. Прослушивается 80 и еще куча других. Windows firewall выключен полностью, в Ubuntu сделал "iptables -F" (вроде как временное отключение firewall) и перезапустил скрипты... netstat не показал ничего нового, Telnet не достучался.

Wireshark при попытке подключиться к серверу Telnet'ом выдал
Нажмите на изображение для увеличения
Название: serv1.jpg
Просмотров: 503
Размер:	105.5 Кб
ID:	25303
Вроде какой-то ответ есть с портов получается.
То же самое пишет, если подключаться Telnet'ом когда на Ubuntu не запущены скрипты. При запуске скриптов ничего особого не возникает в Wireshark.

В прикрепленном архиве пара php файлов запускающих сокет сервер, может быть в них проблема? socket_bind() делается на 127.0.0.1 это правильно?
__________________
x << 2;


Последний раз редактировалось Eric Gurt; 09.10.2010 в 16:54.
Старый 09.10.2010, 17:45
afarber вне форума Посмотреть профиль Отправить личное сообщение для afarber Посетить домашнюю страницу afarber Найти все сообщения от afarber
  № 7  
Ответить с цитированием
afarber
 
Аватар для afarber

Регистрация: May 2006
Адрес: Germany
Сообщений: 74
Если "netstat -an" не показывает LISTENING на порту 10014, то файервол и Wireshark пока смотреть не зачем ;-)

socket_bind на 127.0.0.1 скорее всего тоже неправильно, там наверное нужно 0.0.0.0 или хотя бы IP адрес Вашей VM.

И что стоит в /var/log/messages или куда у Вас php пишет (см. php.ini)?

пока

Добавлено через 15 минут
Кстати если любите telnet, то им и под Ubuntu пользоваться можно ;-)

Старый 09.10.2010, 18:52
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 8  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Да не люблю я его) я его пока только 1 день знаю))

При IP 91.200.106.130 (внешний выделенный IP) - "Warning: Unable to bind address" во время выполнения скриптов.

При "0.0.0.0" или "192.168.1.105" (внутренний IP виртуальной машнины) или "NULL" или "null" результат тот же что и раньше. "netstat -an" не видит портов, telnet ведет себя по прежнему.

Сделал "find / -name php.ini" и нашел 2 файла:
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini

Фразу "/var/log/messages" в них не нашел и запихнул обоих в .zip
Вложения
Тип файла: zip etc-php5.zip (41.9 Кб, 34 просмотров)
__________________
x << 2;

Старый 09.10.2010, 19:52
afarber вне форума Посмотреть профиль Отправить личное сообщение для afarber Посетить домашнюю страницу afarber Найти все сообщения от afarber
  № 9  
Ответить с цитированием
afarber
 
Аватар для afarber

Регистрация: May 2006
Адрес: Germany
Сообщений: 74
Я скопировал на свою CentOS VM, поменял $ip = '0.0.0.0'; Запустил

Код:
php socketServer.php
[2010-10-10] [SocketServer] NEW CLIENT Resource id #7 [IP: 127.0.0.1]
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] Exception: String could not be parsed as XML
[2010-10-10] [SocketServer] REMOVING CLIENT Resource id #7
[2010-10-10] [SocketServer] NEW CLIENT Resource id #8 [IP: 127.0.0.1]
(это я еще сделал telnet 127.0.0.1 10014 и впечатал туда <xml>blah</xml>)

netstat -an его тоже видел:

Код:
netstat -an| grep 100
tcp        0      0 0.0.0.0:10014               0.0.0.0:*                   LISTEN
И работает твой скрипт так: он привязывается к порту 10014 и когда присоединяется новый клиент, начинает читать по 4096 байтов. Если нашел в них XML, то он умирает, т.к. у него нету класса Game. Если XML не нашлось, то он печатает [SocketServer] Exception и крутится дальше (причем он не сохраняет прочитанные до этого байты - и наверное зря).


Последний раз редактировалось afarber; 09.10.2010 в 20:03.
Старый 09.10.2010, 20:29
membrilius вне форума Посмотреть профиль Отправить личное сообщение для membrilius Найти все сообщения от membrilius
  № 10  
Ответить с цитированием
membrilius
 
Аватар для membrilius

Регистрация: Aug 2008
Сообщений: 258
afarber

У меня на рабочей машине стоит на 1 винте Windows на другом Linux Gentoo... две полноценные ОС. И это очень удобно.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.