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

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

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

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
По умолчанию Проблема с policy file request

Всем привет.
Меня эта проблема не обошла стороной, есть самописный сервер на java, во флеше соединяюсь через класс Socket, локально все хорошо. Выложил в сеть флешку и началось..
Как и положено флешка соединяется и первый запрос "<policy-file-request/>", затем отключается и больше не подключается.
Смотрю через снифер, флешка каждый раз по разным портам запрашивает политику, сервер по тому же порту и отвечает, на этом все заканчивается.
Как увидеть что зашло во флеш, как вообще удостовериться что флешка получила мой ответ?
За два дня перепробовал все варианты политики, и с преходами после строк и в конце "\n", и с байтами в конце '\0'.
Код:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<site-control permitted-cross-domain-policies="master-only"/>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
Повторюсь что данные флешу шлются, и флешка обрывает соединение, но снова не подключается, я так понимаю что не нравится политика, как проснифить флешку что в нее вошло? Или может есть какие то другие причины. Подскажите, помогите пожалуйста.

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

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Как один из вариантов проверить не закрыт ли фаерволом порт, по кторому пытается соединиться флешка.
__________________
interplanety

Старый 30.04.2013, 12:09
Ralph_DiMarko вне форума Посмотреть профиль Отправить личное сообщение для Ralph_DiMarko Найти все сообщения от Ralph_DiMarko
  № 3  
Ответить с цитированием
Ralph_DiMarko
 
Аватар для Ralph_DiMarko

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
Цитата:
Сообщение от Korchy Посмотреть сообщение
Как один из вариантов проверить не закрыт ли фаерволом порт, по кторому пытается соединиться флешка.
Мне кажется если бы порт был закрыт, тогда в снифере не отображались бы запросы, а в снифере четко видны запросы на сервер и от сервера обратно по тому же порту.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Может во флешке отписка от событий происходит? Надо код соединения самой флешки смотреть. Если сниффер видит, по идее и сама флешка должна видить. Или кидать секьюрити эррор

Старый 30.04.2013, 12:46
Ralph_DiMarko вне форума Посмотреть профиль Отправить личное сообщение для Ralph_DiMarko Найти все сообщения от Ralph_DiMarko
  № 5  
Ответить с цитированием
Ralph_DiMarko
 
Аватар для Ralph_DiMarko

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Может во флешке отписка от событий происходит? Надо код соединения самой флешки смотреть. Если сниффер видит, по идее и сама флешка должна видить. Или кидать секьюрити эррор
Извините провтыкал не уточнил, выкидывает security error, причем спустя секунд 5 после того как на сервере отключилось.

----------------
А вообще может есть какие то сервисы для проверки всего этого дела? Может флешка которая на 100% рабочая и коннектится или сервер который 100% рабочий и отвечает как положено?


Последний раз редактировалось Ralph_DiMarko; 30.04.2013 в 14:11.
Старый 30.04.2013, 14:55
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
XML какой-то стрёмный. По-моему в нём проблема. Есть куча и сокет серверов для проверки, вот, например
http://www.flasher.ru/forum/blog.php?b=275
мой 100% рабочий (если за 3 года не перестал) полиси сервер отдавал такой xml
Код AS1/AS2:
const char *policy = "<cross-domain-policy>\
	<site-control permitted-cross-domain-policies=\"master-only\"/>\
   <allow-access-from domain=\"*\" to-ports=\"*\" />\
</cross-domain-policy>";
Исходники сокет сервера прикрепил, если что. Они страдают тем, что не отрубают по таймауту тех, кто законнектился и просто висит.
Вложения
Тип файла: rar police.rar (10.5 Кб, 75 просмотров)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 30.04.2013 в 15:06.
Старый 30.04.2013, 15:50
Ralph_DiMarko вне форума Посмотреть профиль Отправить личное сообщение для Ralph_DiMarko Найти все сообщения от Ralph_DiMarko
  № 7  
Ответить с цитированием
Ralph_DiMarko
 
Аватар для Ralph_DiMarko

Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
спасибо большое за линк и сурсы, похоже меня ждет веселый вечер сегодня. еще наверное подниму смартфокс и посмотрю что снифер говорит. вечером отпишусь о результатах.

-----------------------
Оказывается у моего провайдера стоит или висит NAT (как я понял это преобразователь адресов и портов). Подозреваю что проблема из за этого, а еще смотрю в настройках моего сетевого подключения присвоен один ип, а на сервисах определяющих ип определяется совсем другой ип. Мутно как то, запросил нормальный внешний ип.

-----------------------
01.05.2013 01:47
Скачал пример сервера от Котяры по ссылке которую любезно предоставил -De-. У него отдельно идет сервер для раздачи политики и отдельно основной. Решил попробовать так же, и знаете что заработало.
Написал отдельный сервер который слушает клиентов на отдельном порту, который лежит на том же хосте что и основной сервер.

Код:
package policyserver;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class PolicyServer 
{
    public static void main(String[] args) 
    {
        PolicyServer policy = new PolicyServer();
        policy.run();
    }
    
    public void run()
    {
        try 
        {
            ServerSocket server = new ServerSocket(55553);
            while(true)
            {
                try 
                {
                    Socket s = server.accept();
                    PrintWriter out = new PrintWriter(s.getOutputStream(), true);
                    out.println("<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0");
                    System.out.println("sent");
                    out.close();
                    s.close();
                }
                catch(IOException e)
                {
                    
                }
            }
        } 
        catch (IOException ex) 
        {
            Logger.getLogger(PolicyServer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
А во флеше указал
Код:
Security.loadPolicyFile("xmlsocket://ip:55553");
Только вот думаю это я сделал такой костыль что два сервера или это нормально, вобщем поживем увидим во что выльется такой метод раздачи.
Еще раз спасибо всем кто комментировал.


Последний раз редактировалось Ralph_DiMarko; 01.05.2013 в 03:56.
Старый 01.05.2013, 10:03
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от -De- Посмотреть сообщение
XML какой-то стрёмный. По-моему в нём проблема. Есть куча и сокет серверов для проверки, вот, например
http://www.flasher.ru/forum/blog.php?b=275
мой 100% рабочий (если за 3 года не перестал) полиси сервер отдавал такой xml
Код AS1/AS2:
const char *policy = "<cross-domain-policy>\
	<site-control permitted-cross-domain-policies=\"master-only\"/>\
   <allow-access-from domain=\"*\" to-ports=\"*\" />\
</cross-domain-policy>";
Исходники сокет сервера прикрепил, если что. Они страдают тем, что не отрубают по таймауту тех, кто законнектился и просто висит.
Вариант по-лучше, просто положить в какую-то директорию реальный xml файл политик, а сервак при старте или по команде будет его подгружать и записывать в переменную, ну и, естественно, отдавать клиентам по запросу. Так не будет возможных проблем с экранированием, и можно будет легко изменить сам файл, не перекомпилируя сервер.

У меня сервак вот так читает файл политик
Код AS3:
public static String readPolicy() {
		try {
			String policyXML	= readFile(
					new File(FGSMain.SETTINGS_DIR + "crossdomain.xml").getAbsoluteFile());
			return policyXML;
		} catch (IOException e) {}
		return null;
	}
private static String readFile(File file) throws IOException {
		FileInputStream stream = new FileInputStream(file);
		try {
			FileChannel fc = stream.getChannel();
			MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0,
					fc.size());
			return Charset.defaultCharset().decode(bb).toString();
		} finally {
			stream.close();
		}
	}

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

Теги
file , policy , request , socket
Опции темы
Опции просмотра

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

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


 


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


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