Proxy и посещения - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем! У меня появился попрос, вот в программе пользователь указывает путь к proxy файлам, эти прокси у него отображаются в memo1 (после того как он указал их) потом он пишет потоки допустим 5 и нажимает старт. И программа заходит на сайт через 1 проксю потом меняет на другую и снова заходит на сайт уже через другую и так пока прокси не кончатся

Решение задачи: «Proxy и посещения»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using xNet.Net;
using xNet.Text;
using System.Collections;
using System.Threading;
using xNet.Threading;
 
namespace Mail.ru_Hit_Counter
{
    public partial class Form1 : Form
    {
        Queue<string> myQueue = new Queue<string>();
        MultiThreading multiThreading = new MultiThreading(30);
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            stop_btn.Enabled = false;
            start_btn.Enabled = false;
        }
 
        private void proxy_btn_Click(object sender, EventArgs e)
        {
            start_btn.Enabled = true;
            try
            {
                var openDialog = new OpenFileDialog()
                { Title = "Open proxy file", FileName = "proxy.txt"};
                if (openDialog.ShowDialog() == DialogResult.OK)
                {
                    var proxies = File.ReadAllLines(openDialog.FileName);
                    foreach (var p in proxies) if (!String.IsNullOrWhiteSpace(p) && p.Contains(':')) myQueue.Enqueue(p);
                    var text = proxies.Aggregate((p1, p2) => p1 + Environment.NewLine + p2);
                    textBox2.Text = text;
                }
            }
            catch { MessageBox.Show("Невозможно открыть файл", "Error" + MessageBoxIcon.Error); }
        }
           
        private void start_btn_Click(object sender, EventArgs e)
        {
            proxy_btn.Enabled = false;
            stop_btn.Enabled = true;
            multiThreading.RunFor(0, 10, myMethod);
            start_btn.Enabled = false;
        }
 
        public void myMethod(int n)
        {
            try
            {
                using (var request = new HttpRequest())
                {
                    request.UserAgent = HttpHelper.ChromeUserAgent();
                    request.Proxy = HttpProxyClient.Parse(myQueue.Dequeue());
                    request.Get(textBox1.Text);
                }
            }
            catch { MessageBox.Show("Ошибка"); }
        }
 
        private void stop_btn_Click(object sender, EventArgs e)
        {
            proxy_btn.Enabled = true;
            multiThreading.Cancel();
            start_btn.Enabled = true;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.429 из 5