securityError при подключении к сокету

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

securityError при подключении к сокету

Сообщение sasha^ »

здравствуйте, дорогие форумчане)) и у меня появился вопрос :)

у меня есть свой сокет-сервер на java(vps) и прослушивает порт 17030...
локально когда Security.sandboxType равен localTrusted - все присоединяется и работает...
но когда я запускаю просто локально(localWithNetwork), или с сайта(remote) - Error #2048: Security sandbox violation: file:///C|/JAVA/SRC/chat.swf cannot load data from 144.76.161.242:17030.
crossdomain.xml есть на 80 порту(apache) в главной директории... ( http://144.76.161.242/crossdomain.xml )
не пойму в чем причина.. но это явно с флешем... т.к. сервер работает и не причем... вот часть лога, говорящая что соединение приходит, но флеш обрывает его, т.к. ошибка безопасности...
[root@vps java]# java -classpath ./ Server
Server start...
New client connected... Online: 1
UPD: мучаюсь уже второй день))) что я только не делал - все никак :(
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: securityError при подключении к сокету

Сообщение sasha^ »

все, нашел решение))) как-то магически действует :)
вот, если кому придется мучатся с сокетами...
создаем файл flashpolicy.xml

Код: Выделить всё

<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy>    <site-control permitted-cross-domain-policies="master-only"/>   <allow-access-from domain="*" to-ports="*" /></cross-domain-policy>
потом файл flashpolicyd.pl(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. 
далее файл start.sh

Код: Выделить всё

perl ./flashpolicyd.pl --file=./flashpolicy.xml --port=843 &
а потом запускаем от root'a так..
./start.sh

все, проблем нету.. файл политики с 843 порта(главный порт оказывается для флеша) посылается...
может подключатся к сокетам..(от 1025 порта до 65500 примерно...)
у меня все заработало!=)
Glango
Сообщения: 26
Зарегистрирован: 26 дек 2012, 21:00

Re: securityError при подключении к сокету

Сообщение Glango »

а такой пример будет работать? http://www.broculos.net/2008/03/how-to- ... hfO0tKLii5
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: securityError при подключении к сокету

Сообщение sasha^ »

не знаю. не пробывал.. но у меня на перле тоже заработало
Glango
Сообщения: 26
Зарегистрирован: 26 дек 2012, 21:00

Re: securityError при подключении к сокету

Сообщение Glango »

испытал тот пример, запустил сервер, все работает. Там можно указывать порты больше 1024.
Ответить