c# - TcpClient 和 UdpClient 抛出错误

标签 c# sockets tcp udp windows-7-x64

在运行 Windows 7 x64 和 VS2012 U1 并使用 .Net 4 的两个系统上,如果我调用 UdpClient 或 TcpClient,我会收到错误“提供了无效参数”。

我已经尝试了很多端口,并且我已经验证了这些端口尚未绑定(bind),但我每次都遇到相同的错误。

我也尝试过以提升的权限运行代码但无济于事。

测试代码:

try
        {
            using (UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 123)))
            {
                Console.WriteLine("Port is open");
            }
        }
        catch (SocketException error)
        {
            Console.WriteLine("Error:\n{0}", error.Message);
        }

错误输出:

System.Net.Sockets.SocketException was unhandled
  HResult=-2147467259
  Message=An invalid argument was supplied
  Source=System
  ErrorCode=10022
  NativeErrorCode=10022
  StackTrace:
       at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
       at System.Net.Sockets.UdpClient..ctor(IPEndPoint localEP)
       at GetNTPTime.Program.Main(String[] args) in z:\My Documents\Dropbox\Dev\C#\_Example\GetNTPTime\GetNTPTime\Program.cs:line 15
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:

请注意,如果我简单地调用 UdpClient client = new UdpClient();

,我会得到同样的错误

最佳答案

问题是我的代码是从 Dropbox 文件夹执行的,出于某种原因导致了问题,即使 Dropbox 当时没有在系统上运行。如果我将代码库移至桌面并运行它,一切正常。

更新

我做了更多研究,发现问题不是 Dropbox 而是 Cloudfogger,如果我关闭 Cloudfogger,一切正常。

关于c# - TcpClient 和 UdpClient 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819089/

相关文章:

c# - 每个平台目标的不同程序集名称

c# - 如何从网络服务获取输入

C# 在新创建的套接字上丢弃 UDP 数据包

python - Python网络编程

.net - .NET 中是否有任何基于消息的 TCP 套接字库?

c# - 从 C# 中的单个方法返回多个类型

c# - C#中使用反射覆盖虚方法表

java - 如何使用套接字流在 BufferedReader 上设置超时

java - 使用 IPv4 的套接字通信

c++ - 一台服务器多客户端 C/C++