SocketException:权限被拒绝:连接

Hem*_*els 6 java sockets

我想知道在其他什么情况下会从该行抛出此 (SocketException: Permission returned: connect) 错误

SocketAddress socketAddress = new InetSocketAddress("86.143.5.165", 6464);
// Set a 3s timeout
clientSocket.connect(socketAddress, 3000);
Run Code Online (Sandbox Code Playgroud)

当使用端口 < 1024 时,存在一些与权限相关的 Android 问题。我正在端口 6464 上运行一个简单的 java 客户端/服务器应用程序,并且我正在使用 java 1.6.0_32 (在阅读 Java 1.7.0_7 添加后IPv6 支持)。

我已将端口 80 转发到我的服务器(通过在浏览器中转到我的外部 IP 在客户端计算机上进行验证),并且端口 6464 也已打开。

为什么客户端会被拒绝连接?

编辑:我最初在尝试从服务器本身连接到服务器时确实收到此错误。(显然,我想这就像电话一样,你会听到忙音)。我让一个朋友测试了一下,他可以连接。我现在从不在 LAN 上的笔记本电脑进行连接(即使用 3g 手机作为热点),但奇怪的是仍然收到错误。

编辑2:

java.net.SocketException: Permission denied: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at runtime.MyGame.main(MyGame.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
#### Java Web Start Error:
#### Socket failed to connect
Run Code Online (Sandbox Code Playgroud)

use*_*421 2

客户端没有被“拒绝连接”。本地操作系统拒绝连接。

Java 1.4 中添加了 IPv6 支持。