2011-01-04 3 views
0

hello guy's только что написал программу для клиента и сервера. Пока я помещаю «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) 

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

ответ

0

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

+0

«... если вы его не подписываете». Если вы не подпишете его, ** и ** пользователь подтвердит подписанный код при появлении запроса. Пользователь правил. ;) –

0

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

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

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

+0

Можете ли вы предоставить мне файл политики, чтобы предоставить разрешение ....? – user528050

Смежные вопросы