Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Организация связи двух флэшек на разных компьютерах (http://www.flasher.ru/forum/showthread.php?t=135677)

dixlofos 29.01.2010 00:32

Организация связи двух флэшек на разных компьютерах
 
Хочу сделать онлайн стрелялку типо контр страйка только 2д.

Как можно мне организовать связь между двумя пользователями?
Я пробовал через пхп заносить в ХМЛ а потом считывать оттуда данные и обрабатывать, но такой путь не сильно годиться для такой "быстрой" игры, тк весь этот процесс происходит очень медленно.
Можно ли как-нибудь по другому это сделать?:umnik2:

Gaen 29.01.2010 00:56

Откройте для себя прекрасный и удивительный мир сокетов :)

dixlofos 29.01.2010 22:36

http://help.adobe.com/ru_RU/ActionSc...f6c0-7ffe.html
Этот ужас это оно? =]

Gaen 30.01.2010 00:37

http://help.adobe.com/ru_RU/ActionSc...0204-7cfb.html скорее вот это

dixlofos 02.02.2010 21:38

что-то все равно нечерта не выходит:(
вот что я делал:

сгорем пополам сомпилировал ява сервер (код взял отсюда : http://help.adobe.com/ru_RU/ActionSc...0204-7cfb.html)

ну кинул на сервер, запустил вроде работает (=

потом кое как написал файл палитики (хз может и не правильно написал)
лежит оно рядом с ява файликом
Код:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.mysite.com -->
<cross-domain-policy> 
    <allow-access-from domain="85.234.56.247" to-ports="*" /> 
</cross-domain-policy>

потом спер отсюда (http://help.adobe.com/ru_RU/AS3LCR/F...XMLSocket.html) код
Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.XMLSocket;
 
    public class XMLSocketExample extends Sprite {
        private var hostName:String = "localhost";
        private var port:uint = 8080;
        private var socket:XMLSocket;
 
        public function XMLSocketExample() {
            socket = new XMLSocket();
            configureListeners(socket);
            if (hostName && port) {
                socket.connect(hostName, port);
            }
        }
 
        public function send(data:Object):void {
            socket.send(data);
        }
 
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CLOSE, closeHandler);
            dispatcher.addEventListener(Event.CONNECT, connectHandler);
            dispatcher.addEventListener(DataEvent.DATA, dataHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        }
 
        private function closeHandler(event:Event):void {
            trace("closeHandler: " + event);
        }
 
        private function connectHandler(event:Event):void {
            trace("connectHandler: " + event);
        }
 
        private function dataHandler(event:DataEvent):void {
            trace("dataHandler: " + event);
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
 
        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }
 
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
    }
}

запустил родной денвер и...)
Код:

ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2031: Ошибка сокета. URL: http://www.85.234.56.247/"]
что я неправльно сделал-та?

Crenth 02.02.2010 22:18

а чем плох вариант PHP+Postgres, например ?
без сокетов, через URLRequest

dixlofos 02.02.2010 23:01

Crenth
а у вас нет готовых примеров с каментариями?
Ну или где об этом можно почитать по увлекательней? =]

Добавлено через 3 минуты
так сейчас малость почитал в инете, Crenth, я правильно понял что вы предлогаете записывать данные в XML и потом считывать?
Если да, то такой вариант не катит, ибо очень медленно, а нужно что бы было очень быстро

Gaen 03.02.2010 07:35

Попробуйте к своему серверу приконнектиться телнетом

Crenth 03.02.2010 08:42

тогда единственный вариант - сокеты

dixlofos 04.03.2010 19:20

GAIKER
пишет
Код:

Trying to connect to http://www.85.234.56.247/:8080
Unable to connect: socket error.

а в output
Код:

Ошибка при открытии URL-адреса "http://http://www.85.234.56.247//crossdomain.xml"
Error #2044: Необработанный securityError:. text=Error #2048: Нарушение изолированной среды: file:///D|/АрхивЪ/Дизайн/флэш/action%5Fscript%5F3.0%5Fsamples%5Ffor%5FCS4/TelnetSocket/TelnetSocket.swf не может загрузить данные из http://www.85.234.56.247/:8080.
        at com.example.programmingas3.socket::Telnet()[D:\АрхивЪ\Дизайн\флэш\action_script_3.0_samples_for_CS4\TelnetSocket\com\example\programmingas3\socket\Telnet.as:32]
        at TelnetSocket/connect()[D:\АрхивЪ\Дизайн\флэш\action_script_3.0_samples_for_CS4\TelnetSocket\TelnetSocket.as:16]



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

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