我从我写的压力测试程序中得到了这个方法:
void UdpStress(IPEndPoint destination)
{
byte[] data = new byte[] { 255 };
Socket s = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
while (true)
s.SendTo(data, destination);
}
运行此方法后,我在不到1秒的时间内收到以下异常:
System.Net.Sockets.SocketException: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full
我在Windows 8上运行它并且工作得很好。
我大约2周前升级到Windows 10,现在它无效。我怀疑它与Windows 10中的修改过的Socket API有关,或者其他什么。
那么,这个错误来自哪里?为什么现在在Windows 10中发生这种情况,但在Windows 8中根本没有发生?
编辑:另一个问题的答案并没有解决我的问题。他们建议端口耗尽这样的事情,这可能是可能的,但在我升级到Windows 10之前从未发生过。该程序在Windows 8上工作得非常好但是现在,由于我难以理解的原因,在Windows上不起作用10因为这个例外。此外,有一个答案说它适用于Vista而不是7,这表明操作系统之间有一些不同的限制压力测试程序。这是什么?我能以某种方式解决它吗?