|
|
|||||
Регистрация: Nov 2012
Сообщений: 30
|
Файлы политики
Люди добрые, объясните мне тупому. Я так говорю потому, что не могу разобраться, как мне кажется в самом простом. Вот цитата
Цитата:
Вопрос один: в каком каталоге должны лежать файлы политики, или как добиться, чтобы флеш их считывала? Извините тупого за тупой вопрос. Очень прошу помочь! Заранее всем огромное спасибо!!! |
|
|||||
Регистрация: Nov 2012
Сообщений: 30
|
Пробовал, не помогает. На 843 вообще ноль. Вот код
import java.net.*; import java.io.*; class SimpleServer { public static void main(String[] args) { try { System.out.println("-> Security server started..."); ServerSocket server = new ServerSocket(2525); Socket client; DataOutputStream out; DataInputStream in; // Reading crossdomain.xml FileInputStream xmlFile = new FileInputStream("crossdomain.xml"); int xmlBytesCount = xmlFile.available(); byte[] xmlBytes = new byte[xmlBytesCount + 1]; xmlFile.read(xmlBytes, 0, xmlBytesCount); xmlBytes[xmlBytesCount] = 0; xmlFile.close(); byte[] policyRequest = new byte[23]; // for (;;) // { client = server.accept(); out = new DataOutputStream(client.getOutputStream()); in = new DataInputStream(client.getInputStream()); in.read(policyRequest, 0, 23); out.write(xmlBytes, 0, xmlBytesCount + 1); out.flush(); System.out.println(":: FSS :: Policy sended to " + client.toString()); client.close(); // } } catch (Exception e) { e.printStackTrace(); } int port = 8080; // случайный порт (может быть любое число от 1025 до 65535) SimpleServer(port); } static ServerSocket socket; static Socket incoming; static BufferedReader readerIn; static PrintStream printOut; private static void 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 + (char)0 + "\r"); if(str.trim().equals("EXIT")) { done = true; } } } incoming.close(); } catch (Exception e) { System.out.println(e); } } private static void out(String str) { System.out.println(str); printOut.println(str); printOut.flush(); } } |
|
|||||
Здесь форум по флешу, раздел по as3, а не java.
При беглом осмотре кода я вообще не вижу, где там создается сокет на 843 порту. Добавлено через 7 минут Маленький ликбез по устройству серверной части. Значит, сервер состоит из двух частей: сокет на вашем порту, к которому коннектятся флешки; сокет на 843 (по умолчанию) порту, куда ломятся все клиенты неявно для Вас и просят файл политики безопасности. Как только вы отослали по основному порту какую-то информацию, флешплеер лезет на 843 порт сервера и отсылает строку (я указал в посте, куда ссылка ведет). В ответ он ждет строку-ответ с нулевым байтом в конце. И, если он ее получает и она валидная, то дальше клиент по основному порту работает как надо без каких-либо секьюрити-ошибок. В общем, как только любой клиент подключился к 843 порту, сервер отсылает ему строку на запрос, после чего смело отрубает коннект, ибо сокет дальше здесь держать нет смысла, он нужен только для аутентификации, так сказать. В этом плане мне на Java понравилась библиотека netty, на которой очень быстро и просто создать вменяемый сервер.
__________________
тут я |
|
|||||
Регистрация: Nov 2012
Сообщений: 30
|
Спасибо.
|
Часовой пояс GMT +4, время: 04:49. |
|
« Предыдущая тема | Следующая тема » |
|
|