在AS3

2016-01-21 28 views
1

的loadPolicyFile不工作(IM壞English我嘗試是很好的一個很好的解釋)在AS3

我得到了在AS3的客戶機套接字和Java中的一個服務器。在本地主機上,我沒有問題連接我的客戶端和我的服務器。他們可以沒有問題與該行進行數據交換:

socket.connect("127.0.0.1", 2030); 

其確定,我的服務器可以接收一個byte []的數據,可以讀取和寫入我的客戶沒有問題。

但現在我想過去的服務器「在線」,所以我打開了連接和82端口的端口2030年,我嘗試讀取的crossdomain.xml被autorized,具有:

Security.loadPolicyFile("http://90.20.233.143:82/crossdomain.xml"); 
socket.connect("http://90.20.233.143", 2030); 

現在當IM啓動連接...已經得到了一些問題Security.loadPolicyFile

即時得到Java服務器上:

java.net.SocketException: Connection reset 

,以及在客戶AS3(法語):

Connexion au serveur.... Vous etes connecté au serveur

Avertissement :La balise non valide est ignorée pour le domaine ' http://90.20.233.143 ' dans le fichier de régulation présent à http://90.20.233.143:82/crossdomain.xml

Socket error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2031: Erreur de socket. URL: 90.19.160.185"] // its sur cause "connection reset" on JAVA

我在我的crossdomain.xml代碼:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="http://90.20.233.143/" to-ports="*"/> 
    <site-control permitted-cross-domain-policies="all" /> 
</cross-domain-policy> 

我不知道問題出在哪裏?

+0

您已經在端口82偵聽的服務器,它是一個基於'插座政策server'而不是HTTP服務器?我將開始使用運行在默認端口843上的Adobe示例策略服務器來測試您的客戶端,如果它加載策略並因此可以打開您的服務器端口2030的套接字以讀取/寫入數據,則可以設置生產樣式策略服務器。 Adobe已經Python和Perl示例,請確保它的工作原理,基於這些第一@ http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html – SushiHangover

回答

0

這是一個http服務器,http://90.20.233.143:82/crossdomain.xml,是crossdomain.xml的路徑。

客戶端可以讀取XML,但他說「標記」不是很好,所以他會忽略標記(法國的「應答器」)。那麼這個計劃是在我的http服務器上打開端口843?或者java服務器?

+0

策略服務器不基於HTTP的,他們是TCP套接字之一,將'xml'作爲一系列字節發送到Flash客戶端,查看Adobe示例策略服務器以查看它是如何處理的。 – SushiHangover

0

好吧好吧,我轉換XML文件中的字節代碼,並通過Security.loadPolicyFile方法讀取XML?