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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Sep 2011
Адрес: Russia, Ryazan
Сообщений: 8
Arrow запустить флешку, работающую с сокетом, на компьютере

Всем привет.

Просмотрел некоторое количество информации в интернете, вроде бы все просто, но сделать то что мне надо не получается.

В общем ситуация следующая:
Есть флешка, она работает с Socket. Есть сервер, находится он на том же компе. Флешка к нему подключается. Из среды Flash всё замечательно, а вот из Explorer'а запускается Flash Player с ошибкой:

Цитата:
SecurityError: Error #2010: Не допускается использование сокетов SWF-файлам в local-with-filesystem.
at flash.net::Socket/internalConnect()
at flash.net::Socket/connect()
at payterminal::TLogger()
at payterminal::TMainTerminalClass()
at testterminal_fla::MainTimeline/frame1()
В интернете нашел, что нужно в File->Publish Settings сменить настройку Local playback security на Access network only.

Ок. Флешка запускается без ошибке, но шлет на сервер:
<policy-file-request/>

и коннект отваливается.
Насколько понял нужно прицепить(просто положить рядом?) crossdomain.
Но попробовав неколько, не получил никакого изменения результата.

Пожалуйста подскажите, как добиться требуемого сценария работы.
Спасибо.

Старый 23.09.2011, 00:43
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Почитайте про подключение к сокетам.

Добавлено через 6 минут
Проще говоря, вам нужно на, скажем, 843 порт посадить слушающий сервер, который будет принимать клиентов, получать от них <policy-file-request/>, отдавать им crossdomain и закрывать соединение. При этом флешка должна подключаться к основному порту сервера. Обращение к 843 порту, внутреннее дело плеера.

Добавлено через 15 минут
Еще можно поискать слово "сокет".

Старый 26.09.2011, 00:37
THandle вне форума Посмотреть профиль Отправить личное сообщение для THandle Найти все сообщения от THandle
  № 3  
Ответить с цитированием
THandle

Регистрация: Sep 2011
Адрес: Russia, Ryazan
Сообщений: 8
Попробовал. На сервере висит два прослушивающих сокета. Один на порт 843, другой на используемый у меня 5243. В итоге приходит запрос <policy-file-request/> на оба, хотя с 843 отсылаю файл crossdomain вида:
Код:
<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<!-- Policy file for xmlsocket://socks.mysite.com --> 
<cross-domain-policy>  
    <allow-access-from domain="*"/> 
</cross-domain-policy>
и закрываю соединение.
Флешка висит открытая. Никаких ошибок не выдает. Но и подключения не происходит больше по моему 5243 порту, хотя в самом коде флешки, если подключение не удалось она постоянно подключается. Подключение происходит через сокет следующим образом:

Код AS3:
Sock.connect('127.0.0.1', 5243);
Где Sock - экземпляр Socket.

Я не понимаю почему так происходит и в чем может быть проблема. Пробовал отсылать по обоим портам. В другом месте мне посоветовали AllowDomain.. и.. если честно я уже запутлася. Хотя вроде бы задача не сложная.

Старый 03.10.2011, 12:45
THandle вне форума Посмотреть профиль Отправить личное сообщение для THandle Найти все сообщения от THandle
  № 4  
Ответить с цитированием
THandle

Регистрация: Sep 2011
Адрес: Russia, Ryazan
Сообщений: 8
Вопрос, к сожалению, так и не получилось решить. Пробовал много вариантов crossdomain'а но почему то повторно все равно отсылается <policy-file-request/>. Хотя вроде бы сначала дожидаюсь ответа от 843 сокета и только потом подключаюсь по рабочему.

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Попробуйте отдавать по 843 порту crossdomain следующего содержания:
Код:
<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*" to-ports="*" meta-policy="master-only"/>
</cross-domain-policy>
Насколько мне известно тег meta-policy="master-only" указывает плееру довольствоваться кроссдомейном только с 843 порта и не делать запрос <policy-file-request/> на основной порт приложения (в вашем случае 5243).

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

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

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


 


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


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