1

在 Windows 7(.Net 4.6.1)上,这段代码出现异常:

    var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket.IOControl(-1744830448, new byte[4] { 1, 0, 0, 0 }, null);

System.Net.Sockets.Socket.IOControl(Int32 ioControlCode, Byte[] optionInValue, Byte[] optionOutValue) 中引用的对象类型不支持尝试的操作

这适用于我的 VM 上的 Windows 8。

4

1 回答 1

1

Windows 7 不支持使用 SIO_LOOPBACK_FAST_PATH = -1744830448 和 IOControl 方法,因此会发生异常。

来自SIO_LOOPBACK_FAST_PATH 的 MSDN 文档

引用的对象类型不支持尝试的操作。如果不支持指定的 IOCTL 命令,则返回此错误。如果在 Windows 7、Windows Server 2008 R2 和更早版本上使用 SIO_LOOPBACK_FAST_PATH IOCTL,则会返回此错误。

如果传输提供程序不支持 SIO_LOOPBACK_FAST_PATH IOCTL,也会返回此错误。

于 2017-07-31T17:15:43.763 回答