6
permission java.net.SocketPermission "192.168.1.1:31337", "connect, accept, resolve";

次の許可は何を許可しますか?私のアプリケーションは、192.168.1.1:31337(おそらく外部クライアント)からの接続のみを受け入れることを許可されていますか、それとも192.168.1.1:31337(私のアプリケーションは192.168.1.1:31337で実行されています)への接続を受け入れることを許可されていますか? '?)。

4

1 に答える 1

4

コードがアプレットであるか、Java セキュリティ マネージャーの下で実行されている場合、何かを行うためのアクセス許可を明示的に付与する必要があります。

アプレット (またはセキュリティ マネージャーで実行されているアプリケーション) にリソース アクセスを許可するには、アクセスを試みるコードに対応するアクセス許可を明示的に付与する必要があります。

デフォルトでは、コードにはソケット権限がありません。あなたの許可は、あなたのコードには、接続を受け入れ、接続し、ポートの IP を持つホストのみを解決する許可があることを示しています。192.168.1.131337

「受け入れる」アクションと「接続する」アクションは明らかです。

「解決」アクションは、他のアクションのいずれかが存在する場合に暗示されます。アクション「解決」は、ホスト/IP ネーム サービス ルックアップを参照します。

「listen」アクションは、「localhost」とともに使用した場合にのみ意味があります。

listen と accept の違いは、listen は「接続の準備をして、待機中の接続があるかどうかを確認する」ことを意味し、accepting は「OK、受け入れる」ことを意味することです。

Java 7.およびjava.net.SocketPermission Java docsの権限については、ドキュメントを参照してください。

于 2012-09-05T15:15:38.947 に答える