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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 29.08.2011, 14:31
Try_in_flash вне форума Посмотреть профиль Отправить личное сообщение для Try_in_flash Найти все сообщения от Try_in_flash
  № 1  
Ответить с цитированием
Try_in_flash

Регистрация: Aug 2011
Сообщений: 4
Question Сокет соединение Java + AS3

Никак не могу решить проблему соединения сервера на Java и ActionScript 3.0

Вот код сервера на java (взят с хэлпа Adobe, и немного видоизменен, но незначительно), компилируется в Eclipse

Код:
import java.io.*; 
import java.net.*; 
 
class SimpleServer 
{ 
    private static SimpleServer server; 
    ServerSocket socket; 
    Socket incoming; 
    BufferedReader readerIn; 
    PrintStream printOut; 
 
    public static void main(String[] args) 
    { 
        int port = 8080; 
       server = new SimpleServer(port); 
    } 
 
    private SimpleServer(int port) 
    { 
        System.out.println(">> Starting SimpleServer"); 
        try 
        { 
            socket = new ServerSocket(port); 
            incoming = socket.accept(); 
            readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
            printOut = new PrintStream(incoming.getOutputStream()); 
            out("Enter EXIT to exit.\r"); 
            boolean done = false; 
            while (!done) 
            { 
                String str = readerIn.readLine(); 
                if (str == null) 
                { 
                    done = true; 
                } 
                else 
                { 
                    out("Echo: " + str + "\r"); 
                    if(str.trim().equals("EXIT")) 
                    { 
                        done = true; 
                    } 
                } 
                 
            } 
            incoming.close();
        } 
        catch (Exception e) 
        { 
            System.out.println(e); 
        } 
    } 
 
    private void out(String str) 
    { 
    	System.out.println(str);
        printOut.println(str); 
        printOut.flush();
         
    } 
}
Код на as3:

Код AS3:
package MultiPlayer
{
	import flash.display.Sprite;
	import flash.events.DataEvent;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.*;
	import flash.text.TextField;
 
	public class MultiPlayer extends Sprite
	{
		private var port:Number = 8080;
		private var socket:XMLSocket = new XMLSocket("127.0.0.1",port);
		private var textField:TextField = new TextField();
		public function MultiPlayer()
		{
			textField.height = 300;
			textField.width = 600;
			textField.x = 100;
			textField.y = 100;
			textField.backgroundColor = 0x00ff00;
			textField.background = true;
			this.addChild(textField);
 
 
			socket.addEventListener(Event.CONNECT, onConnect );
			socket.addEventListener(Event.CLOSE,onClose);
			socket.addEventListener(DataEvent.DATA, onSocketData);
			socket.connect("127.0.0.1",port);
		} 
 
		private function onConnect( event:Event ):void 
		{ 
			textField.appendText("Соединение для передачи установлено...\n"); 
		}
 
		private function onClose( event:Event ):void 
		{ 
			textField.appendText("Соединение для передачи прервано...\n"); 
		}
 
		private function onSocketData( event:DataEvent ):void 
		{ 
			textField.appendText("poly4eno [" + event.type + "] " + event.data); 
 
			try
			{
				socket.send("test\n");
				textField.appendText("data sending...\n");
			}
			catch(e:Error)
			{
				textField.appendText("fail...\n"); 
			}
		}
	}
}
Они соединяются, но потом ни к одному не приходит никакая информация, ни к другому.

Возможно проблема с файлом политики XMLсокет соединения. Потому что его просто нет. Я никак не могу понять куда его надо поместить, что бы его автоматически загрузило.
Либо, где этот файл должен находиться, что бы можно было написать:
Код:
Security.loadPolicyFile("xmlsocket://127.0.0.1:8080");
я сделал файл crossdomain.xml
с текстом:

Код:
<?xml version="1.0"?> 
<cross-domain-policy>  
    <allow-access-from domain="*" to-ports="*" />  
</cross-domain-policy>
и разместил его в папке bin/ - проекта, рядом с файлом сервера, но ...

и ещё: если закоментить ту часть, де идет цикл, то функция out срабатывает, но данные не передаются в AS3.
Если кто-то сталкивался с этими проблемами, можете выложить работающие исходники?

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

Теги
Action script 3.0 , flash , java , socket

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

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


 


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


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