簡體   English   中英

TCPClient套接字錯誤0x80004005的原因

[英]Causes of TCPClient socket error 0x80004005

“ System.Net.Sockets.SocketException(0x80004005):嘗試以其訪問權限禁止的方式訪問套接字”

好的,我知道這個問題在SO上已經發生過很多次了,但是我找不到解決方案。 我的問題是:這可能是什么原因造成的。

要點:

  • 發生與防火牆無關
  • 端口是開放的
  • 目標是開放的,並且連接過去一直在工作
  • 由於工作連接正常,因此防火牆或病毒掃描程序的任何更改都不能排除這些情況。
  • 以管理用戶身份運行
  • 源端口為23876
  • 目標端口是可變的,取決於從其他來源檢測到的客戶端
  • Windows 8.1

還有一點-移植到.NET Core后,也會發生此錯誤。

唯一的變化是我嘗試共享端口,但看不到錯誤與錯誤之間的連接。要連接的代碼是

 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);

重用本地端點的位置。

此錯誤的可能原因是什么? 每次BIND調用都會發生這種情況。

好吧,這一切都使我變得非常愚蠢。

我所做的事情,以及我忘記做的事情,是在同一端口上建立一個TcpListener,其代碼為_tcpListener.ExclusiveAddressUse = false; 不能按我預期的那樣工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM