【问题标题】:Java Socket permission : applet isn't initializedJava Socket 权限:小程序未初始化
【发布时间】:2011-08-18 15:26:53
【问题描述】:

以下是我的错误的一部分。由于这个错误,我的小程序没有初始化。以下代码是 init() 方法的一部分:

    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.<init>(InetSocketAddress.java:124)
        at java.net.Socket.<init>(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 上运行另一个程序。我正在尝试使用 localhost 上的 1307 端口连接两者。

【问题讨论】:

    标签: java security sockets permissions


    【解决方案1】:

    Applet 不能连接到除加载它们的主机之外的任何主机(出于安全原因)。

    如果你想这样做,你必须签署你的小程序。

    【讨论】:

      【解决方案2】:

      这是一个安全问题,不允许您从小程序中创建连接。小程序一般不允许打开套接字连接。

      更具体地说,您只能打开与为小程序提供服务的服务器的连接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 2010-10-11
        • 2015-01-09
        • 2020-01-14
        • 2014-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多