Java SecurityManager checkListen()方法与示例
SecurityManager类checkListen()
方法
checkListen()方法在java.lang包中可用。
当给定参数值不等于0时,checkListen()方法使用给定的SocketPermission(“localhost:”+port_no,“listen”)调用checkPermission;否则,使用SocketPermission(“localhost:1024-”,“listen”)调用checkPermission),则给定参数值等于0。
checkListen()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
建立连接时,checkListen()方法可能会引发异常。
SecurityException-如果不允许调用线程在给定端口上侦听(即,它不等待连接请求),则可能引发此异常。
语法:
public void checkListen(int port_no);
参数:
intport_no–表示本地端口号。
返回值:
此方法的返回类型为void,不返回任何内容。
示例
//Java程序演示示例 //voidcheckListen(intport_no) //SecurityManager的方法 public class CheckListen extends SecurityManager { //覆盖checkListen()SecurityManager- public void checkListen(int port_no) { throw new SecurityException("No such port exists!!!!"); } public static void main(String[] args) { int port_no = 8090; //通过使用setProperty()方法是设置策略属性 //与安全经理 System.setProperty("java.security.policy", "file:/C:/java.policy"); //实例化CheckListen对象 CheckListen cl = new CheckListen(); //通过使用setSecurityManager()方法是设置 //安全经理 System.setSecurityManager(cl); //通过使用checkListen(8090)方法来检查 //端口号 cl.checkListen(8090); //显示消息 System.out.println("Not Restricted.."); } }
输出结果
Exception in thread "main" java.lang.SecurityException: No such port exists!!!! at CheckListen.checkListen(CheckListen.java:8) at CheckListen.main(CheckListen.java:27)