laz*_*mon 6 java sockets securitymanager
permission java.net.SocketPermission "192.168.1.1:31337", "connect, accept, resolve";
Run Code Online (Sandbox Code Playgroud)
以下权限允许什么?我的应用程序是否允许仅接受来自192.168.1.1:31337的连接(可能是外部客户端)或接受连接到192.168.1.1:31337(我的应用程序运行在192.168.1.1:31337,这与'listen不同"?).
如果您的代码是一个小程序或在 java 安全管理器下运行,您需要显式授予它执行某些操作的权限。
为了允许小程序(或使用安全管理器运行的应用程序)访问资源,必须向尝试访问的代码显式授予相应的权限。
默认情况下,您的代码没有套接字权限。您的权限表明您的代码有权接受连接、连接到并解析仅192.168.1.1
在 port 上具有 IP 的主机31337
。
“接受”和“连接”动作是显而易见的。
当存在任何其他操作时,就暗示了“解决”操作。操作“解析”是指主机/IP 名称服务查找。
“listen”操作仅在与“localhost”一起使用时才有意义。
Listen和Accept的区别在于,Listen的意思是“准备连接,看看是否有连接在等待”,而Accepting的意思是“好的,接受它”。
请参阅 java 7 中的权限文档和java.net.SocketPermission java 文档