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上运行,其中与'listen “?)。如何理解java套接字权限?
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上运行,其中与'listen “?)。如何理解java套接字权限?
如果你的代码是一个applet或者在一个java安全管理器下运行,你需要明确授予它执行任务的权限。
为了允许applet(或使用安全管理器运行的应用程序)访问资源,必须将相应权限明确授予试图访问的代码。
默认情况下,您的代码没有套接字权限。您的许可表示您的代码有权接受连接,连接并解决只有主机IP 192.168.1.1
端口31337
。
“接受”和“连接”行为是显而易见的。
当存在任何其他动作时,隐含“解决”动作。 “解析”动作是指主机/ IP名称服务查找。
“listen”动作仅在与“localhost”一起使用时才有意义。
listen和accept之间的区别在于,listen的意思是“为连接做好准备,看看有没有连接等待”,接受方法是“好的,接受它”。
See the docs for permissions in java 7.和java.net.SocketPermission java docs
好,阳光的文件说: 同样,如果以下权限: P2 =新的SocketPermission( “本地主机:1024-”, “接受,连接,侦听”); 被授予某些代码,它允许代码接受本地主机上1024到65535之间的任何端口上的连接,连接到或侦听。所以“接受”允许连接到特定主机,而不是来自特定主机。 – lazydaemon
当然是“开”,而不是“开”。剩下的答案表明了这一点。纠正。谢谢。 – dcernahoschi