У меня есть этот метод из программы стресс-тестирования, которую я написал:
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, и он работал нормально.
Я обновился до Windows 10 около 2 недель назад, и теперь это не работает. Я подозреваю, что это как-то связано с модифицированным Socket API в Windows 10 или чем-то в этом роде.
Итак, откуда эта ошибка? И почему это происходит сейчас в Windows 10, а в Windows 8 вообще не происходило?
EDIT: Ответы на другой вопрос не решают мою проблему. Они предлагают такие вещи, как исчерпание портов, что может быть возможно, но никогда не случалось со мной, пока я не обновился до Windows 10. Программа отлично работала в Windows 8, но теперь, по причине, которую я пытаюсь понять, не работает в Windows 10 из-за этого исключения. Кроме того, в ответе говорится, что он работает в Vista, но не в 7, что говорит о том, что между ОС есть что-то другое, что ограничивает эту программу стресс-тестирования. Что это? Можно как-то решить?