Сканирование портов в несколько потоков с помощью ThreadPool - C#

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

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

Мне необходимо создать приложение в котором вводится определенное количество потоков которые сканируют порты. Как создать?
Листинг программы
  1. ThreadPool.SetMaxThreads(Convert.ToInt32(countPool.Text), Convert.ToInt32(countPool.Text)-1);
  2. ThreadPool.GetMaxThreads(out nWorkThread, out nCompletionThread);
  3. listBox1.Items.Add("MAX: " + nWorkThread);
  4. listBox1.Items.Add("Ввод-вывод: " + nCompletionThread);
  5. for (int i = 0; i < Convert.ToInt32(countPool.Text); i++)
  6. ThreadPool.QueueUserWorkItem(ForThread);
  7. Thread.Sleep(3000);
  8. public void ForThread(object state)
  9. {
  10. IPAddress ipAddress = IPAddress.Parse(ip.Text);
  11. TcpClient TcpScan = new TcpClient();
  12. SetListItemAdd listItemBox = new SetListItemAdd(this.LoadItemListCallBack);
  13. for (int port = startPort; port < EndPort; port++)
  14. {
  15. ///здесь подключение к серверу
  16. }
  17. }
При таком коде, каждый поток будет сканировать все порты. А нужно что-бы потоки проверили все порты...

Решение задачи: «Сканирование портов в несколько потоков с помощью ThreadPool»

textual
Листинг программы
  1. public void ForThread(object state)
  2.         {
  3.             IPAddress ipAddress = IPAddress.Parse(ip.Text);
  4.             TcpClient TcpScan = new TcpClient();
  5.             SetListItemAdd listItemBox = new SetListItemAdd(this.LoadItemListCallBack);
  6.             int? port=GetPort();
  7.             while (port!=null){
  8.               ///здесь подключение к серверу
  9.               port=GetPort();
  10.             }
  11.         }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы