5

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

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

有一些与权限相关的 Android 问题,以及使用端口 < 1024 时。我在端口 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
4

4 回答 4

1

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

Java 1.4 中添加了 IPv6 支持。

于 2012-12-03T21:30:00.390 回答
0

这与客户端上非常本地化的网络设置有关。其他客户端可以毫无问题地连接,我认为这可能与工作组或特定的本地客户端防火墙有关。谢谢大家。

于 2012-12-03T22:15:33.680 回答
0

好吧,首先,给我们“MyIpAsAString”和端口会很有用。无论如何,您确定服务程序正在该 IP 和端口上运行吗?这通常是为什么,或者您用于连接的代码本身是不正确的。

于 2012-12-03T21:27:01.600 回答
0

对于那些登陆这里与我有类似问题的人。

Spock groovy我在运行测试时收到此错误maven。直接运行groovy测试运行良好,而从maven失败中运行它们。

为了解决这个问题,配置maven-surefire-plugin永不分叉。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <forkMode>never</forkMode>
            </configuration>
        </plugin>

不知道为什么这解决了问题 - 欢迎发表评论。

于 2016-12-20T08:12:56.747 回答