ソケット接続を管理するためにフレックスワーカーを使用しようとしています。これは、大量のデータを受信しているときにUIがフリーズするためです。
しかし、ポート843が開いていないため、ポリシーに問題が発生しています。そのため、他のポートを使用してポリシーを読み込もうとしましたが、アプリケーションがポート843のポリシーファイルにアクセスしようとしているというセキュリティエラーが発生します。
ポリシーをロードするためにワーカー内で使用するものは次のとおりです。
Security.loadPolicyFile("xmlsocket://myServer:8888");
そして、私はJavaアプリでポリシーを提供しようとします:
public static void main(String[] args)
{
String policy = "<?xml version=\"1.0\"?><!DOCTYPE cross-domain-policy SYSTEM \"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd\">";
policy += "<cross-domain-policy>";
policy += "<allow-access-from domain=\"*\" to-ports=\"*\"/>";
policy += "</cross-domain-policy>";
ServerSocket s;
try
{
s = new ServerSocket(8888);
while(true)
{
try
{
Socket cli = s.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(cli.getInputStream()));
OutputStreamWriter out = new OutputStreamWriter(cli.getOutputStream());
System.out.println(in.read());
out.write(policy+"\0");
out.flush();
cli.shutdownInput();
cli.shutdownOutput();
cli.close();
System.out.println("Policy response sent");
System.out.println(policy);
System.out.println("Waiting for new request");
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
何が悪いのかわかりませんが、何か間違ったことはありますか?
前もって感謝します。