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)

私を助けてください男の... !!

4

2 に答える 2

0

Java SE プラットフォームのセキュリティ システムに真っ向から突っ込んだだけだと思います。Java SE セキュリティ モデル、特に Permissions クラスに関するこの情報を見てください。

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

これは直感的ではありません。実際、これは非常に面倒なことですが、VM がやりたいことを実行できないように設計されています。

于 2011-01-04T03:37:27.480 に答える
0

これはアプレットとして開始されますか? その場合、署名しない限り、コードの発信元のサーバーにしか接続できません。

于 2011-01-04T03:09:28.987 に答える