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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Apr 2013
Сообщений: 82
По умолчанию Ошибка безопасности

Добрый вечер! Стоит задача разработать онлайн чат для сайта. Пребегли к помощи бинарных сокетов. Но в флеше нужно дать отачу файла безопасности, дабы не было ошибки "[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]"
Вот сам файл, написанный на perl:
Код:
    #!/usr/bin/perl
    #
    # policyd.pl
    # Simple socket policy file server
    #
    # Usage: policyd.pl [-port=N] -file=FILE
    # Logs to stdout
    #
     
    use strict;
    use Socket;
     
    my $NULLBYTE = pack( 'c', 0 );
     
    my $port = 843;
    my $filePath;
    my $content;
     
    ### READ ARGS
     
    while ( my $arg = shift @ARGV )
    {
        if ( $arg =~ m/^--port=(\d+)$/ )
        {
            $port = $1;
        }
        elsif ( $arg =~ m/^--file=(.*)/ )
        {
            $filePath = $1;
        }
    }
     
    unless ( $filePath )
    {
        die "Usage: policyd.pl [--port=N] --file=FILE\n";
    }
     
    ### READ FILE
     
    -f $filePath or die "No such file: '$filePath'\n";
    -s $filePath < 10_000 or die "File probably too large to be a policy file: '$filePath'\n";
     
    local $/ = undef;
    open POLICYFILE, "<$filePath" or die "Can't open '$filePath': $!\n";
    $content = <POLICYFILE>;
    close POLICYFILE;
     
    $content =~ m/cross-domain-policy/ or die "Not a valid policy file: '$filePath'\n";
     
    ### BEGIN LISTENING
     
    socket( LISTENSOCK, PF_INET, SOCK_STREAM, getprotobyname( 'tcp' ) ) or die "socket() error: $!";
    setsockopt( LISTENSOCK, SOL_SOCKET, SO_REUSEADDR, pack( 'l', 1 ) ) or die "setsockopt() error: $!";
    bind( LISTENSOCK, sockaddr_in( $port, INADDR_ANY ) ) or die "bind() error: $!";
    listen( LISTENSOCK, SOMAXCONN ) or die "listen() error: $!";
     
    print STDOUT "\nListening on port $port\n\n";
     
    ### HANDLE CONNECTIONS
     
    while ( my $clientAddr = accept( CONNSOCK, LISTENSOCK ) )
    {
        my ( $clientPort, $clientIp ) = sockaddr_in( $clientAddr );
        my $clientIpStr = inet_ntoa( $clientIp );
        print STDOUT "Connection from $clientIpStr:$clientPort\n";
       
        local $/ = $NULLBYTE;
        my $request = <CONNSOCK>;
        chomp $request;
     
        if ( $request eq '<policy-file-request/>' )
        {
            print STDOUT "Valid request received\n";
        }
        else
        {
            print STDOUT "Unrecognized request: $request\n\n";
            close CONNSOCK;
            next;
        }
     
        print CONNSOCK $content;
        print CONNSOCK $NULLBYTE;
        close CONNSOCK;
     
        print STDOUT "Sent policy file\n\n";
    }
     
    # End of file.
Но ошибка не пропадает. Можете подсказать, что не так?

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

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

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


 


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


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