0

Flash 用のゲーム サーバーを作成しようとしていますが、Java サーバーから Flash ゲームにポリシー ファイルを送信しようとしてスタックしています。

サーバーがメッセージを受け取りました

<policy-file-request/>\0

同様に、xml をゲームに戻すことはできません。

メッセージを取得して返すときのゲームサーバーコードは次のとおりです

    if (message.equals("<policy-file-request/>" + '\0')) {
        StringBuffer policyBuffer = new StringBuffer();
        policyBuffer.append("<?xml version=\"1.0\"?><cross-domain-policy>");
        policyBuffer.append("<allow-access-from domain=\"*\" to-ports=\"*\" />");
        policyBuffer.append("</cross-domain-policy>");
        String returnPolicy = policyBuffer.toString() + '\0';
        //byte[] returnPolicyBytes = returnPolicy.getBytes();
        System.out.println("Returning cross-domain-policy...\n" + returnPolicy);
        //packet.socket.getOutputStream().write(returnPolicyBytes, 0, returnPolicyBytes.length);
        //packet.socket.getOutputStream().flush();
        packet.out.println(returnPolicy);
        packet.out.flush();
        return;
    }

** "packet" は、"PrintWritter" クラスのオブジェクトである "out" フィールドを持つ私のソケット クライアント ラッパー オブジェクトです **

Flash ゲームが xml メッセージを受信できない (常にタイムアウトする) 理由がわかりません。ポリシー ファイルを要求する時間を増やすことはできますか? 新しいポリシー サーバーを作成する必要がありますか?

4

1 に答える 1

0

問題は解決しました。新しいポリシーサーバーを作成し、ポート843でリッスンする必要があります。代わりに、ゲームサーバーを使用してポリシーメッセージで応答します。

于 2013-02-22T06:57:24.477 に答える