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

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

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

Регистрация: Nov 2012
Сообщений: 30
По умолчанию Файлы политики

Люди добрые, объясните мне тупому. Я так говорю потому, что не могу разобраться, как мне кажется в самом простом. Вот цитата
Цитата:
Чтобы разрешить доступ на уровне сокетов, можно поместить файл политики сокетов в любом из следующих местоположений:

порт 843 (местоположение основного файла политики);
тот же порт, что и для основного подключения к сокету;
другой порт.
из этой статьи, которую, я практический выучил на изучь. Как впрочем и другие статьи, связанные с ней.
Вопрос один: в каком каталоге должны лежать файлы политики, или как добиться, чтобы флеш их считывала?
Извините тупого за тупой вопрос. Очень прошу помочь!
Заранее всем огромное спасибо!!!

Старый 01.12.2012, 16:59
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Я же ответил вам здесь, что этот файл (просто текст, строка) передается от СЕРВЕРА по СОКЕТУ на 843 порту.
__________________
тут я

Старый 01.12.2012, 17:05
client510 вне форума Посмотреть профиль Отправить личное сообщение для client510 Найти все сообщения от client510
  № 3  
Ответить с цитированием
client510

Регистрация: 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();
         
    } 
}
Если не трудно подскажите, в какую стоку вставлять Ваш код.

Старый 01.12.2012, 17:08
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Здесь форум по флешу, раздел по as3, а не java.
При беглом осмотре кода я вообще не вижу, где там создается сокет на 843 порту.

Добавлено через 7 минут
Маленький ликбез по устройству серверной части.

Значит, сервер состоит из двух частей: сокет на вашем порту, к которому коннектятся флешки; сокет на 843 (по умолчанию) порту, куда ломятся все клиенты неявно для Вас и просят файл политики безопасности. Как только вы отослали по основному порту какую-то информацию, флешплеер лезет на 843 порт сервера и отсылает строку (я указал в посте, куда ссылка ведет). В ответ он ждет строку-ответ с нулевым байтом в конце. И, если он ее получает и она валидная, то дальше клиент по основному порту работает как надо без каких-либо секьюрити-ошибок.

В общем, как только любой клиент подключился к 843 порту, сервер отсылает ему строку на запрос, после чего смело отрубает коннект, ибо сокет дальше здесь держать нет смысла, он нужен только для аутентификации, так сказать.

В этом плане мне на Java понравилась библиотека netty, на которой очень быстро и просто создать вменяемый сервер.
__________________
тут я

Старый 01.12.2012, 17:47
client510 вне форума Посмотреть профиль Отправить личное сообщение для client510 Найти все сообщения от client510
  № 5  
Ответить с цитированием
client510

Регистрация: Nov 2012
Сообщений: 30
Спасибо.

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

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

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


 


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


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