【问题标题】:SocketException: Permission denied: connectSocketException:权限被拒绝:连接
【发布时间】:2012-12-03 21:24:29
【问题描述】:

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

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

有一些与权限相关的 Android 问题,以及在使用

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

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

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

EDIT2:

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

【问题讨论】:

    标签: java sockets


    【解决方案1】:

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

    Java 1.4 中添加了 IPv6 支持。

    【讨论】:

    • 公平评论。我只知道 ipv6(在 Java 7 上)最近出现了问题(因此该协议现在在服务器和客户端机器上都被禁用;适配器重新启动)。
    • @Hemmels 在您的问题中发布完整的堆栈跟踪。
    • @downvoter 很难看出你对这个答案的问题。实际上不可能。
    【解决方案2】:

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

    【讨论】:

    • 好吧,在这种情况下,也可能只是计算机有防火墙或类似的东西拒绝外部请求。
    • 将我的实际 IP 添加到问题中。
    • @VoidWhisperer 我运行了一个 dyndns 端口扫描程序。 “86.143.5.165:6464 已打开并接受连接。这表明该端口没有被防火墙或您的 ISP 阻止并且当前正在运行。”
    • @VoidWhisperer 关于那个没有“也”。这只是一个本地权限问题。与服务器是否正在运行无关。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      我在运行来自mavenSpock groovy 测试时遇到此错误。直接运行 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>
      

      不知道为什么这能解决问题 - 欢迎 cmets。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 2012-11-02
        • 1970-01-01
        • 1970-01-01
        • 2022-08-22
        • 2014-05-15
        • 2015-06-20
        相关资源
        最近更新 更多