У меня очень странная проблема, возникающая при пинге большого количества прокси.«RoundTripTime» возвращает 0 случайным образом.
Если я запускаю список прокси через средство проверки во второй раз, у него будут разные прокси, возвращающие 0, и другие, возвращающиеся с фактическими мс.
Я думалвозможно, это было из-за слишком большого количества запросов одновременно, поэтому я попытался добавить в него немного спящего режима вручную, но это вызвало большее время отклика «0».
Я серьезно застрял и ценю любую помощь.
public static List<string> proxyList = new List<string>();
public static List<string> proxyNoPort = new List<string>();
public static int proxyCount;
public static int proxyTimeOut;
public static long pingResponseTime;
public static bool proxyTest()
{
try
{
Ping pingTest = new Ping();
PingReply pingResponse = pingTest.Send(proxyNoPort[proxyCount], proxyTimeOut);
if (pingResponse != null && pingResponse.RoundtripTime < proxyTimeOut)
{
pingResponseTime = pingResponse.RoundtripTime;
return true;
}
}
catch
{
proxyList.Remove(proxyList[proxyCount]);
proxyNoPort.Remove(proxyNoPort[proxyCount]);
return false;
}
return false;
}
Изображение программы Примечания из моего собственного дальнейшего тестирования: если число возвращает «0», заставляя его повторять один и тот же прокси, работает примерно для 90% прокси.
if(pingResponse.RoundtripTime == 0)
{
pingResponse = pingTest.Send(proxyNoPort[proxyCount], proxyTimeOut);
pingResponseTime = pingResponse.RoundtripTime;
}