2011-01-04 9 views
0

こんにちは男の は、クライアントとサーバー用のプログラムを作成しました。 私は "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

"..あなたはそれに署名しないでください。"あなたがそれに署名しない限り、**と**は要求されたら署名されたコードをOKにします。ユーザーのルール。 ;) –

0

私はJava SEプラットフォームのセキュリティシステムに頭を悩ますと思います。 Java SEセキュリティモデル、特にPermissionsクラスについては、this informationを参照してください。

java.net.SocketPermissionクラスは、VMがローカルマシンの外部にアクセスできるポートを制御します。これらは通常、VMの周囲のPolicy fileによって制御されます(これは、VMのマニュアルを参照してください)。 VMが他のソケットにアクセスできるようにするには、ポリシーファイルを変更する必要があります。

これは直感的なことではありません。実際、それは王様の痛みですが、VMが望むことを何もしないように設計されています。

+0

許可を与えるポリシーファイルを私に教えてください....? – user528050

関連する問題