2010-05-30 82 views
2

基本上我使用Flash來連接到Java服務器。無法使Flash套接字策略文件正常工作

儘管我的Java應用程序回覆到<policy-file-request/>,在Flash調試日誌它列出了(不知道的順序,因爲有很多):

* Security Sandbox Violation *

Connection to 192.168.1.86:4049 halted - not permitted from http://127.0.0.1:8888/Current/wander.swf

Warning: Timeout on xmlsocket://192.168.1.86:4049 (at 3 seconds) while waiting for socket policy file. This should not cause any problems, but see http://www.adobe.com/go/strict_policy_files for an explanation.

Error: Request for resource at xmlsocket://192.168.1.86:4049 by requestor from http://127.0.0.1:8888/Current/wander.swf is denied due to lack of policy file permissions.

我不明白的是,服務器(端口4049)接收請求,輸出策略文件(附加空字節),然後關閉連接,當然它不應該超時?

我使用的策略文件:

<?xml version="1.0"?> 
<cross-domain-policy><allow-access-from domain="*" to-ports="*" /> 
</cross-domain-policy> 
+0

「輸出策略文件(附加空字節),然後關閉連接」。你爲什麼要關閉它? – back2dos 2010-06-08 16:02:29

回答

0

亞歷克斯, 兩件事情,你可能還需要做的。我不認爲這個規範實際上表明你需要有這些東西,但是我似乎無法在套接字策略文件例外之前獲得它們。

  1. 聽端口843 <policy-file-request/>調用,而你在端口4049
  2. 把一個HTTP跨域策略在http://192.168.1.86/crossdomain.xml

還有更多的細節迴應他們以同樣的方式這裏:http://www.adobe.com/cn/devnet/flashplayer/articles/socket_policy_files.html

...但我想你已經讀過了。

+0

不幸的是,這並沒有解決問題,端口843上的perl服務器告訴我它已經回答了請求,但它似乎仍然超時。 – Alex 2010-05-31 20:50:05

+0

您是否終止您發送回空字節(\ 0)的數據包?如果不是Flash的套接字庫沒有檢測到收到的消息。 – Ceilingfish 2010-05-31 21:24:57

+0

不幸的是,我是:/不知何故,它仍然超時。如果我將服務器應用程序移動到另一臺物理機器會有幫助嗎? – Alex 2010-06-01 21:00:33

0

在'howto'中,我看到響應不能包含xml版本標籤。只是跨域策略標籤。