|
|
|||||
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Проблема с policy file request
Всем привет.
Меня эта проблема не обошла стороной, есть самописный сервер на java, во флеше соединяюсь через класс Socket, локально все хорошо. Выложил в сеть флешку и началось.. Как и положено флешка соединяется и первый запрос "<policy-file-request/>", затем отключается и больше не подключается. Смотрю через снифер, флешка каждый раз по разным портам запрашивает политику, сервер по тому же порту и отвечает, на этом все заканчивается. Как увидеть что зашло во флеш, как вообще удостовериться что флешка получила мой ответ? За два дня перепробовал все варианты политики, и с преходами после строк и в конце "\n", и с байтами в конце '\0'. Повторюсь что данные флешу шлются, и флешка обрывает соединение, но снова не подключается, я так понимаю что не нравится политика, как проснифить флешку что в нее вошло? Или может есть какие то другие причины. Подскажите, помогите пожалуйста. |
|
|||||
Как один из вариантов проверить не закрыт ли фаерволом порт, по кторому пытается соединиться флешка.
__________________
interplanety |
|
|||||
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Мне кажется если бы порт был закрыт, тогда в снифере не отображались бы запросы, а в снифере четко видны запросы на сервер и от сервера обратно по тому же порту.
|
|
|||||
Регистрация: Dec 2008
Адрес: Одесса
Сообщений: 129
|
Цитата:
---------------- А вообще может есть какие то сервисы для проверки всего этого дела? Может флешка которая на 100% рабочая и коннектится или сервер который 100% рабочий и отвечает как положено? Последний раз редактировалось Ralph_DiMarko; 30.04.2013 в 14:11. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
XML какой-то стрёмный. По-моему в нём проблема. Есть куча и сокет серверов для проверки, вот, например
http://www.flasher.ru/forum/blog.php?b=275 мой 100% рабочий (если за 3 года не перестал) полиси сервер отдавал такой xml Исходники сокет сервера прикрепил, если что. Они страдают тем, что не отрубают по таймауту тех, кто законнектился и просто висит.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 30.04.2013 в 15:06. |
|
|||||
Регистрация: 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); } } } Еще раз спасибо всем кто комментировал. Последний раз редактировалось Ralph_DiMarko; 01.05.2013 в 03:56. |
|
|||||
Цитата:
У меня сервак вот так читает файл политик 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, время: 14:57. |
|
« Предыдущая тема | Следующая тема » |
Теги |
file , policy , request , socket |
|
|