Ошибка разрешения сокета в Java - PullRequest
0 голосов
/ 04 мая 2011

Следующее является частью моей ошибки. Из-за этой ошибки мой апплет не инициализирован. Следующий код является частью метода 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.(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)

Я запускаю другую программу на другой виртуальной машине Java. Я пытаюсь соединить оба порта 1307 на локальном хосте.

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Это проблема безопасности, которая не позволяет вам создать соединение из апплета. Апплетам вообще не разрешено открывать сокетные соединения.

Если быть более точным, вы можете открывать соединения только с сервером, который обслуживал апплет.

1 голос
/ 04 мая 2011

Апплеты не могут подключаться ни к одному хосту, кроме того, с которого они были загружены (по соображениям безопасности).

Если вы все равно хотите это сделать, вы должны подписать свой апплет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...