Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   вопрос! как осуществить передачу данных между 2-мя 3-мя и более пользователями? (http://www.flasher.ru/forum/showthread.php?t=67088)

Viktor_UA 24.07.2005 17:30

вопрос! как осуществить передачу данных между 2-мя 3-мя и более пользователями?
 
Подскажите, что необходимо и рационально использовать (PHP/XML/Perl...) для осуществления передачи данных в реальном времени между юзерами?????? К примеру игра "Преферанс" на троих (игра написана на флэше)! 3 юзера играют одновременно в игру с разных компьютеров через интернет! Как обеспечить процес синхронизации и передачи переменных от одного к двум другим клиентам??????
Заранее благодарен!

Bорон 24.07.2005 17:37

идеальный вариант - сокет сервер.
хуже - скрипт который сохраняет на сервере ходы (состояния) играков. и каждый игрок к нему обращается после каждого хода и(или) раз в промежуток времени.

Viktor_UA 24.07.2005 18:27

Цитата:

идеальный вариант - сокет сервер.
В двух словах можешь сказать что это такое и с чем его едят? Это должен быть специальный хостинг (я имею ввиду как поддержка PHP, CGI, Perl)?

Цитата:

хуже - скрипт который сохраняет на сервере ходы (состояния) играков. и каждый игрок к нему обращается после каждого хода и(или) раз в промежуток времени.
тоесть с помощью PHP данные записываються в файл на серваке и все коннектятся к нему и качают?

iNils 24.07.2005 19:08

Реальное время обеспечит только сокет сервер.
Можно создать как на perl, так и на php. Лучше на perl, но поддержка постоянно весящего приложения, должно обеспечиваться хостером.

Чтобы узнать больше, посомтри в хелпе все об XMLSocket.

Viktor_UA 24.07.2005 20:29

mySocket = new XMLSocket()
mySocket.connect("http://www.myHost.com/xmlSocket.asp",2000);

При таком коннекте все клиенты юзеров будут получать одну и ту же информацию? через порт 2000? Что такое xmlSocket.asp? С помощью чего можно написать этот файл? подскажите плиз

Заранее благодарен

iNils 24.07.2005 21:07

Если у пользователя данный порт не заблокирован, то будет получать.
xmlSocket.asp это видимо совет сервер написанный на asp.

john 25.07.2005 03:59

2Viktor_UA,
хых... желаю удачи,
как раз пишу сервер преферанса,
убойная по сложности задача ;)

естественно сокет плюс http

Viktor_UA 25.07.2005 14:06

Цитата:

2Viktor_UA,
хых... желаю удачи,
как раз пишу сервер преферанса,
убойная по сложности задача

естественно сокет плюс http
...да, задачка по сути не из легких но реальная.

а на чём пишешь сокет? Вчера ознакомился с структурой *.xml и командами обработки оных файлов во флэше! Ничего вроде сложного! Но как пишеться сокет понятия не имею! ТЫ не мог бы мне помочь? Скажи, плиз, что необходимо использовать для написания этого сокета, и где можно прочитать подобную инфу о нём?????

Suhman 25.07.2005 14:21

Цитата:

Сообщение от Viktor_UA
К примеру игра "Преферанс" на троих (игра написана на флэше)! 3 юзера играют одновременно в игру с разных компьютеров через интернет!

Не знаю, как там с программой, но ты задумайся, что такое аська, мобильные телефоны и другие средства коммуникации. Короче, никогда не знаешь, сговорились ли твои соперники или нет... :rolleyes:

vcj 25.07.2005 19:29

Походу Сокет может быть написан на любом языке который поддерживаеть такую технологию..... к примеру DELPHI 6/7.... но юмор не в том..... повесить ДЕМОНА --- вот это уже проблема..... Мало кто хочет у себя на хостинге оставлять постоянно запущеную софтину которая выполняет якието функции да есчё и с открытыми под неё портами..... это нужен свой сервер....... так как это делают владельци онлайн игр.....
А про сокеты мош почитать здесь:
_http://www.flasher.ru/forum/showthread.php?threadid=53078
_http://codeproject.com/internet/#Client%2FServer+Development

и есчё гдето в Инете есть статья как написать свой чат на Флеше +РНР

K.A.T.A.F.A.L.K.E.R 25.07.2005 19:43

Вы, верно, шутите? В самом названии я лично вижу слово "пошаговость"!!! Зачем усложнять себе жиснь сокетами??? Та элементарно запись в файл каким-нить серверным php и все тут, а каждые секунд 5-10 проверять обновления... Не умрет юзер если в крайнем случае лишние 5 сек. переждет :D

john 25.07.2005 21:28

я пишу на java.
сокет у меня уже давно готов, как бы не в нем сложность.
сложность написать логику преферанса.

я уже написал одну сокет-многопользовательскую игру - многопользовательских покер, все нормально работает.

но проф сложнее. пришлось писать свой язык программирования описывающий логику игрового процесса.
хотя может я усложняю, ибо у меня требования выше ;)

john 25.07.2005 21:33

2K.A.T.A.F.A.L.K.E.R

во-первых трафик, http запрос тянет за собой, куки, хедеры и всякую дребедень. Нужно передать пару байтов, а запрос идет килобайтный.

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

в-третьих, нагрузка на сервер, если будут долбить сервер одновременно 1000-5000 клиентов - загнется все к чертовой матери.

в-четвертых, не нужно спорить и изобретать велосипед - использование сокета в многопользовательских играх - стандартная практика. без альтернатив.

K.A.T.A.F.A.L.K.E.R 26.07.2005 17:57

Цитата:

Сообщение от john
2K.A.T.A.F.A.L.K.E.R
использование сокета в многопользовательских играх - стандартная практика. без альтернатив.

Ну это ты зря! Альтернативы есть везде. Обрати внимание на БК - сам никогда не играл, но видел как происходит. Если я не ошибаюсь, никакими сокетами там и не пахнет! 1000-5000 человек??? К БК это не относится. Умножь эдак на 100 - тогда будет правда. Кроме того, там ведь тоже штрафы за простой... Хотя нет, не штрафы. Поражение! И никто еще не умер, никто еще не жаловался, и никто не нагружал себя сокетами. Почему? Да скорее всего потому что айПи (на 100% не уверен) у сервера один, а количество портов (читать: подключений) не резиновое! Или я в этом не прав??? А что касается хэдеров - их можно урезать посредством флеша, и поверь мне: если умно сделать, никто разницы даже не заметит. А сокеты... Как минимум не факт что они на серваке поддерживаются. Это ведь опция - хочу - открываю, не хочу - не открываю.

john 26.07.2005 18:04

создание многопользовательских игр - моя работа.
не вижу смысла даже спорить.
"http vs socket" обсуждайте пожалуйста на каком нибудь PHP форуме.

john 26.07.2005 18:14

Цитата:

Сообщение от K.A.T.A.F.A.L.K.E.R
Почему? Да скорее всего потому что айПи (на 100% не уверен) у сервера один, а количество портов (читать: подключений) не резиновое! Или я в этом не прав???

ну что "не резинововое" - прав, конечно :) но вполне достаточное,
например на win 2003 server можно повесить чуть больше 64 000 соединений (два байта). В линуксе не помню.

а порты и соединение - не одно и тоже.

по поводу разрешения открытия сокета на сервере, явно проявляется ваш опыт использования фри-хостинга. нормальный игровой сервер ставится либо на своей площадке либо на колокейшен.

K.A.T.A.F.A.L.K.E.R 26.07.2005 18:21

Цитата:

Сообщение от john
по поводу разрешения открытия сокета на сервере, явно проявляется ваш опыт использования фри-хостинга. нормальный игровой сервер ставится либо на своей площадке либо на колокейшен.

Не угадал. Здесь проявляется мое нежелание как положено настроить PHP на компе :) А насчет своей площадки... Не думаю, что у человека создавшего сию тему она имеется...

Viktor_UA 29.07.2005 18:23

Цитата:

по поводу разрешения открытия сокета на сервере, явно проявляется ваш опыт использования фри-хостинга. нормальный игровой сервер ставится либо на своей площадке либо на колокейшен.
Для написания игры необходимо n-раз её тестить! А значит необходимо на своей машине создать "оболочку", "атмосферу" для теста игрушки?! Тоесть поставить апачи и открыть порт? Каким образом его открывать? Подскажите плиз, как протестить, скажем, чат на флэше который использует Сокет-Коннекшын?
Я пользуюсь фри-хостингом на холм.ру. А каким ты пользуешься хостингом?

john 29.07.2005 18:58

да создавайте "атмосферу" сколько угодно :)
на локальной машине тестируется через localhost порт любой, к примеру 1234

по поводу сервера -
есть готовые бесплатные сервера,

http://www.oregano-server.org/
http://www.openamf.org/
http://www.rawfish-software.com/ (это совсем новый, помоему не free, но много возможностей)

можно изменить если не устраивает - код открытый, это на java,
качайте редактор кода - ту же Idea (http://www.jetbrains.com/idea/download/) смотрите код, читайте доки.

DeadMorozz 29.07.2005 19:00

Для перла и пхп у меня на машинке стоит локальный сервер с дистрибутива Денвер Дмитрия Котерова.
Вполне рабочий вариант, если нет шелла на внешнем сервере, например.

Viktor_UA 29.07.2005 20:19

Цитата:

по поводу сервера -
есть готовые бесплатные сервера,

http://www.oregano-server.org/
http://www.openamf.org/
http://www.rawfish-software.com/ (это совсем новый, помоему не free, но много возможностей)
Чё-то не могу врубитья как там регистрировать аккаунт на халяву!?!?!?!

DeadMorozz 01.08.2005 11:55

Также заслуживает внимания и Smart Fox Server Lite, разработка проекта gotoandplay.it. Не помню точно, в чем ограничения бесплатной версии, но он есть под большое количество серверных ОСей, подробно документрирован и снабжен большим числом исходников и компонентов.


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

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