无法分配新套接字,抛出无效参数异常

Can not allocate new socket, throwing invalid argument exception

我新建了一个项目,一行代码就是分配了一个新的socket:

Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

它抛出一个异常:

An unhandled exception of type system.net.sockets.socket exception occurred in System32.DLL

Additional information: An invalid argument was supplied

它还写了那些代码:0x80004005, ErrorCode: 10022

我希望我迟到的回答对遇到同样问题的其他人仍然有用。

我在几个 networking/socket 示例中遇到了同样的问题,并且每次搜索(参数组合不匹配?/断开连接而不是 Close/optional 设置以重用地址或套接字)都没有 NOT 修复它。此 'invalid argument' 错误消息具有误导性。现在,我想通了:

很可能,您也在 运行 Visual Studio 中的代码或直接在网络卷或共享上的可执行文件 (exe)。 甚至执行了作为管理员将不起作用。

当我将 executable/code 项目复制到 PC 上的本地卷 时,所有套接字程序 运行良好(甚至没有管理员权限)。

或许,更改您的用户帐户控制 (UAC) 权限或您公司的域组策略可以避免此问题。

问候 F.J.