在建立服务器和客户端之间的连接时捕获异常......!

时间:2011-01-04 02:54:44

标签: java sockets serversocket

你好男人的 刚为客户端和服务器编写了一个程序。 虽然我把“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 :(得分:0)

这是作为applet开始的吗?如果是这样,除非您签名,否则只能连接到代码来源的服务器。

答案 1 :(得分:0)

我认为你刚刚进入Java SE平台安全系统。查看Java SE安全模型上的this information,特别是Permissions类。

java.net.SocketPermission类控制VM可以在本地计算机外部访问的端口。这些通常由VM周围的Policy file控制(查看VM文档以确定其位置)。您需要修改策略文件以允许VM访问其他套接字。

这不直观 - 实际上,这是一种皇室般的痛苦 - 但它旨在阻止虚拟机做任何想做的事情。