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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Dec 2011
Сообщений: 40
По умолчанию флеш не принимает файл политики по сокету

Не могу заставить флешку принимать файл политики от сокет-сервера на Java.

Причем флешка без проблем работает с сервером, если её запустить просто,
но как только запустить её в iframe сайта размещенного на денвере - начинается запрос файла политики...
понимаю, что это нормально...


Что только не пробовал.
Уже написал даже отдельный сокет-сервер, который только и делает, что по 843 порту отдает файл политики безопасности. До этого пытался отдавать файл по тому же порту, по которому осуществлял подключение к сокетам...

Вот код сервера Java:

Код:
import java.io.*; 
import java.net.*; 

public class Policy_Server {

	/**
	 * @
	 */
	
	private static Policy_Server server; 
	private static ServerSocket socket; 
	private static Socket incoming; 
	private static BufferedReader readerIn; 
	private static PrintStream printOut; 
	private static int port = 843;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try 
        { 
            port = Integer.parseInt(args[0]); 
        } 
        catch (ArrayIndexOutOfBoundsException e) 
        {} 
        server = new Policy_Server(port); 
	}
	
	private Policy_Server(int port) 
    { 
        try 
        { 
            socket = new ServerSocket(port); 
            incoming = socket.accept(); 
            readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
            printOut = new PrintStream(incoming.getOutputStream()); 
            boolean done = false; 
            while (!done) 
            { 
                String str = readerIn.readLine(); 
                if (str == null) 
                { 
                    done = true; 
                } 
                else 
                { 
                	System.out.println(str);
                	if(str.indexOf("<policy-file-request/>")>=0)
                	{
                		String xml_string;
                		xml_string="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
						xml_string+="<cross-domain-policy xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd\">\n";
						xml_string+="<allow-access-from domain=\"*\" to-ports=\"*\" secure=\"false\" />\n";
						xml_string+="<site-control permitted-cross-domain-policies=\"master-only\" />\n";
						xml_string+="</cross-domain-policy>";
						
						printOut.println(xml_string + (char)0);
                		
						//incoming.close();
                	}       	                	 
                } 
                incoming.close(); 
            } 
        } 
        catch (Exception e) 
        { 
            System.out.println(e); 
        } 
    } 
 }

Причем сервер от флешки получает запрос <policy-file-request/>.
А флеш отказывается принимать файл политики в ответ...
Что я делаю не так???

сайт, который содержит флешку в iframe расположен в "localhost". Сервер запускается тоже на этом компьютере...

Может у кого-нибудь есть работающий пример сервера. Либо дело в клиентской части???

Старый 19.01.2012, 15:22
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Посмотрите здесь (есть пример сервера на C++). Какую ошибку пишет клиент? Попробуйте упростить crossdomain до:
Код:
<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*" to-ports="*" meta-policy="master-only"/>
</cross-domain-policy>

Старый 19.01.2012, 16:22
Nikolay00700 вне форума Посмотреть профиль Отправить личное сообщение для Nikolay00700 Найти все сообщения от Nikolay00700
  № 3  
Ответить с цитированием
Nikolay00700

Регистрация: Dec 2011
Сообщений: 40
Пробовал я этот вариант crossdomain. Ситуация без изменений...

Насчет сервера на си++ пытаюсь разобраться... но честно сказать, тяжело мне провести аналогию с Java.
И, соответственно, не могу пока разобраться со своей ошибкой....

Помогите! несколько дней уже бьюсь...

Добавлено через 4 часа 9 минут
Вроде как решил!!!!!!!!! Что-то начало меняться...
Не могу сказать в чем конкретно была ошибка...
Скорее всего много где... и в любом случае в сервере...
Пытаюсь выяснить. Нашел в интернете очень полезную информацию... Пример взаимодействия Java+Flash
На основе примера начал "лепить" другой сервер Java...
И там политика уже работает!!!!!!!!!!!!!!!!!

Вот ссылка: http://www.broculos.net/en/article/h...sh-java-server

Уверен, что много кому пригодится...

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

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

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


 


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


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