Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SocketException:权限被拒绝:连接_Java_Sockets - Fatal编程技术网

Java SocketException:权限被拒绝:连接

Java SocketException:权限被拒绝:连接,java,sockets,Java,Sockets,我想知道在其他什么情况下会从该行抛出这个(SocketException:Permission denied:connect)错误 SocketAddress socketAddress = new InetSocketAddress("86.143.5.165", 6464); // Set a 3s timeout clientSocket.connect(socketAddress, 3000); 在使用

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

SocketAddress socketAddress = new InetSocketAddress("86.143.5.165", 6464);
// Set a 3s timeout
clientSocket.connect(socketAddress, 3000);
在使用<1024的端口时,存在一些与权限相关的Android问题。 我正在端口6464上运行一个简单的java客户机/服务器应用程序,我正在使用java 1.6.0_32(在阅读java 1.7.0_7添加了ipv6支持之后)

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

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

编辑:最初尝试从服务器本身连接到服务器时,我确实遇到了此错误。(很明显,我想这就像一部电话,你会听到一种占线的声音)。我有一个朋友测试过,他可以连接。我现在正在连接一台不在局域网上的笔记本电脑(即使用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

首先,给我们“MyiPasString”和端口会很有用。无论如何,您确定serve程序正在该IP和端口上运行吗?这就是通常的原因,或者说您获取连接的代码本身是不正确的。

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


Java 1.4中添加了IPv6支持。

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

感谢那些带着类似问题来到这里的人

我在运行
maven
中的
Spock
groovy
测试时遇到此错误。直接运行
groovy
测试工作正常,而从
maven运行测试失败

要解决此问题,请将
maven-surefire插件
配置为永不分叉

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

org.apache.maven.plugins
maven surefire插件
2.19.1
从未

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

好吧,在这种情况下,也可能是计算机有防火墙或类似的东西拒绝外部请求。将我的实际IP添加到问题中。@voidWhisper我运行了dyndns端口扫描程序。“86.143.5.165:6464已打开并正在接受连接。这表示该端口未被防火墙或您的ISP阻止,并且当前正在运行。”@voidWhisper对此没有“也”的说法。这只是本地权限问题。与服务器是否正在运行无关。评论公正。我刚刚意识到ipv6(在Java 7上)最近出现了一些问题(因此,服务器和客户端计算机上都禁用了该协议;适配器重新启动)。@Hemmels在您的问题中发布了完整的堆栈跟踪。@downvoter很难看出您在这个答案中的问题。实际上不可能。