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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д