Java中的套接字权限错误
问题描述:
以下是我的错误的一部分。由于这个错误,我的applet没有初始化。以下代码是init()方法的一部分:Java中的套接字权限错误
Socket sock; try { sock = new Socket("localhost", 1307); out = new PrintWriter(sock.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(sock.getInputStream())); } catch (UnknownHostException e) { } catch (IOException e) { }
我米得到以下错误:
java.security.AccessControlException: access denied (java.net.SocketPermission 1 127.0.0.1 resolve) at java.security.AccessControlContext.checkPermission(AccessControlConte xt.java:323) at java.security.AccessController.checkPermission(AccessController.java: 546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031) at java.net.InetAddress.getAllByName0(InetAddress.java:1145) at java.net.InetAddress.getAllByName(InetAddress.java:1083) at java.net.InetAddress.getAllByName(InetAddress.java:1019) at java.net.InetAddress.getByName(InetAddress.java:969) at java.net.InetSocketAddress.(InetSocketAddress.java:124) at java.net.Socket.(Socket.java:186) at Alice.init(Alice.java:103) at sun.applet.AppletPanel.run(AppletPanel.java:424) at java.lang.Thread.run(Thread.java:619)
我运行在另一个JVM另一个程序。我正尝试在本地主机上使用1307端口连接。
答
Applets可能无法连接到除加载它们的任何主机(由于安全原因)。
如果你想这样做,你必须签署你的小程序。
答
这是一个安全问题,不允许您在小应用程序内创建连接。通常小程序不允许打开套接字连接。
更具体地说,您只能打开连接到服务该applet的服务器的连接。
感谢您的信息.. :) – user661921 2011-05-06 10:17:47