2010-09-17 3 views
1

Я использую actioncript для подключения к моему серверу сокетов, но я всегда получал <policy-file-request/>, отправленный из ActionScript, и после этого соединение закрывается. Код в ActionScript является:actionscript: connect to socket server

  protected function connect_to_server_btn_clickHandler(event:MouseEvent):void 
     { 
      Security.loadPolicyFile("http://192.168.0.198/crossdomain.xml"); 
      socket = new Socket(); 
      socket.addEventListener(Event.CONNECT, onConnect); 
      socket.connect("192.168.0.198", 9999); 
     } 

Содержание crossdomain.xml:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy> 

швейцарских франков, и это обертка HTML, все поставить под http://192.168.0.198/bin-debug/, а файл crossdomain.xml загружается успешно ActionScript (через инструмент захвата пакетов).

Я думаю, что я не должен получать <policy-file-request/>, если я предоставил crossdomain.xml? Заранее спасибо!

+0

О, может ли кто-нибудь помочь мне отредактировать его? похоже, что crossdomain.xml невидим. –

ответ

1

Вот учебник, как решить http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

проверяет Flash Player для файла политики сервера (порт 843 по умолчанию), или в случае необходимости, на сокете вы открываете (для вас, порт 2222).

Также читайте this.

+0

вы также можете найти некоторый проект с открытым исходным кодом на основе python, который освобождает этот сервер и отвечает вашим пользовательским файлом crossdomain на 843-порту. Как этот http://www.webmechs.com/actionscript-3-tutorials/actionscript-echo-server.html Вы даже можете найти пакет deb/rpm. – Eugene

+0

Или вы можете использовать мои запросы на отправку модуля Apache 2 на порт 843: http://code.google.com/p/mod-socket-policy/source/browse/trunk/ –