Исключение возникает при установлении соединения между сервером и клиентом ...! - PullRequest
0 голосов
/ 04 января 2011

привет парень только что написал программу для клиента и сервера.Хотя я ставлю «127.0.0.1» или «localhost», он работает отлично, но в то время как я назначаю свой собственный ip или, может быть, некоторые из ip моего друга.Это не работает и дает исключение, подобное этому

java.security.AccessControlException: access denied (java.net.SocketPermission 27.112.123.254:4444 connect,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:342)
    at java.security.AccessController.checkPermission(AccessController.java:553)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
    at java.net.Socket.connect(Socket.java:541)
    at java.net.Socket.connect(Socket.java:495)
    at java.net.Socket.<init>(Socket.java:392)
    at java.net.Socket.<init>(Socket.java:206)
    at sas.actionPerformed(sas.java:25)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
    at java.awt.Component.processMouseEvent(Component.java:6175)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:5940)
    at java.awt.Container.processEvent(Container.java:2105)
    at java.awt.Component.dispatchEventImpl(Component.java:4536)
    at java.awt.Container.dispatchEventImpl(Container.java:2163)
    at java.awt.Component.dispatchEvent(Component.java:4362)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
    at java.awt.Container.dispatchEventImpl(Container.java:2149)
    at java.awt.Component.dispatchEvent(Component.java:4362)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

Пожалуйста, помогите мне, парень ... !!

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Я думаю, вы просто пошатнулись от системы безопасности платформы Java SE.Взгляните на эту информацию о модели безопасности Java SE, в частности, о классах Permissions.

Классы java.net.SocketPermission управляют тем, какие порты может использовать виртуальная машинадоступ вне локальной машины.Обычно они контролируются файлом политики где-то вокруг виртуальной машины (посмотрите, где она находится, чтобы узнать, где она находится).Вам нужно будет изменить файл политики, чтобы позволить виртуальной машине получать доступ к другим сокетам.

Это не интуитивно понятно - на самом деле, это королевская боль - но оно предназначено для того, чтобы виртуальная машина не могла делать все, что ей нужно..

0 голосов
/ 04 января 2011

Это началось как апплет?Если это так, вы можете подключиться к серверу, с которого исходил код, только если вы его не подпишите.

...