Я создаю программу, которая имеет очень простую предпосылку.
Для X количество объектов
Открытое соединение
Выполнить действия
Закрыть соединение
Открыть Далее
Каждое из этих соединений выполняется на прокси-сервере socks5, и после примерно 200-го соединения я получаю сообщение об ошибке «Операция имеет тайм-аут». Я проверил все прокси, и они работают просто отлично, и действительно странно, если я закрою программу и перезапущу ее снова, проблемы исчезнут. Поэтому мне остается верить, что когда я закрываю соединение, оно действительно не закрывает соединение и компьютер перегружается. Как я могу принудительно закрыть все соединения носков, которые связаны с классом?
socket.Shutdown(SocketShutdown.Both);
//socket.Close();
socket.Disconnect(true);
socket = null;
В ответ на подсказку по использованию netstat я проверил это. Я заметил связи, где задержался, но в конце концов ушел. Тем не менее, проблема все еще остается, после примерно 100-го соединения, 5-секундная пауза между соединениями. Я получаю ошибки тайм-аута. Если я закрою программу и перезапущу ее, они исчезнут. По какой-то причине я чувствую, что связи оставляют позади что-то. Netstat покажет это. Я даже пытался добавить экземпляры клиента в список, и каждый раз, когда каждый заканчивает работу, удаляйте его из списка и затем устанавливайте в ноль. Есть ли способ убить порт? Может быть, это сработает, если я убью порт, на котором было установлено соединение? Возможно ли, что это проблема ОС Windows? Что-то, что использовалось для предотвращения вирусов? Я создаю примерно одно соединение в минуту и поддерживаю это соединение примерно в течение 1 минуты, прежде чем перейти к следующему с как минимум 20 одновременными, если не больше, соединениями одновременно. Что имеет смысл для меня, так это то, что закрытие программы, кажется, очищает все ресурсы, которые я не очищаю в своем коде. Я использую класс, который я нашел в интернете, который позволяет использовать прокси socks5 с классом сокета. Так что я действительно в растерянности, какой-нибудь совет или направление в голову было бы здорово? Это должно быть красиво. У меня возникло искушение увидеть текстовый файл, в котором я был в моем списке подключений, и завершил работу программы, а затем программа anohter перезапустила его, чтобы узнать, где он остановился в данный момент.