无法分配新套接字,抛出无效参数异常
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.
我新建了一个项目,一行代码就是分配了一个新的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.