代码之家  ›  专栏  ›  技术社区  ›  Sentinel

TCPClient套接字错误的原因0x80004005

  •  1
  • Sentinel  · 技术社区  · 6 年前

    “system.net.sockets.socketexception(0x80004005):试图以访问权限禁止的方式访问套接字。”

    好吧,我知道这个问题以前在S.O.上发生过很多次,但是我找不到解决办法。我的问题是:可能的原因是什么?

    要点:

    • 不考虑防火墙而发生
    • 端口已打开
    • 目标已打开,连接过去一直在工作
    • 由于连接正常,对防火墙或病毒扫描程序的任何更改都不能排除这些问题。
    • 作为管理用户运行
    • 源端口为23876
    • 目标端口是变量,取决于从另一个源检测到的客户端
    • Windows 8.1版

    还有一点-这个错误也发生在移植到.NET核心之后。

    唯一的变化是我试图共享端口,但看不到端口和错误之间的连接。要连接的代码是

     client = new TcpClient();
                             client.Client.SetSocketOption(
                                 SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                             client.Client.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, 0);
                             client.Client.Bind(ipLocalEndPoint);
                             client.Client.Connect(ep);
    

    本地端点被重用的位置。

    这个错误的可能原因是什么?每次绑定调用都会发生这种情况。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sentinel    6 年前

    好吧,这一切都证明了我是极其愚蠢的。

    我所做的,忘记了我所做的,是在同一个端口上用这个代码建立一个tcplistener _tcpListener.ExclusiveAddressUse = false; 没有按我的预期工作。