1

ポート 843 でリッスンしているミニ サーバーがあり<policy-file-request/> 、次のメッセージを送信します。

<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

私のフラッシュ側では、接続コードは次のようになります

m_socket = new Socket("127.0.0.1", 4600);
m_socket.addEventListener(ProgressEvent.SOCKET_DATA, OnSockData);

m_socket.writeUTFBytes(String.fromCharCode(255) + String.fromCharCode(0));
m_socket.flush();

クライアントからchar 255を取得することを期待するポート4600でリッスンする別のサーバーがありますが、送信されません。ポート 4600 での接続は確立されますが、データは送信されません。

ポート 843 のミニ サーバーは、クライアントからの接続を正常に取得し、ポリシー ファイルも送信しています。

したがって、ポリシー ファイルの送信に何らかの問題があるかのどちらかです (AS3 でチェックインする方法がわかりません)。またはオプション 2 は、初期接続プロセス中に何らかの理由でデータが失われていることです。

PSポート843でミニサーバーを実行しない場合、ポート4600のサーバーがポリシーファイルリクエストを受け取ります(AS3プロトコルに従って)。

ここで何を確認するかについてのヒントをいただければ幸いです。何が問題なのかわかりません。私はフラッシュ デバッガーを介してすべてを行っていたので、今までポリシー ファイルの要求は必要ありませんでした。

4

1 に答える 1

2

doctypes を含む完全な 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="*" to-ports="4600" /></cross-domain-policy>

編集:データを送信する関数をm_socket.addEventListener(Event.CONNECT, connectHandler);作成してみてください。connectHandler

于 2012-09-04T05:01:36.400 に答える