| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > Помогите разобраться срочно!!! |
| Автор: headzero 6.3.2007, 16:34 | ||
| Извините,что повторяюсь. Просто уже долго не могу дождаться ответа. Решил поменять название темы вопроса и описание, потому-что,как вижу опытных пограммистов слова "Сканер портов" или "Помогите новичку" не сильно радуют или вызывают иронию. И все же,кому не лень, ответте,пожалуста на вопрос. Вот имеется код порт сканера:
В принципе понимаю как он работает.Пробовал сканировать разные айпишники. Но єта программа работает силно медленно: в лучшем случаи сканирует 1 порт в секунду. А ведь их больше 60000!!! Подскажите, медленность изза плохой сети или невозможно быстрее в принципе? Подскажите может ктото знает более эффктивный код.(Если можно с пояснениями). Как вообще отсканировать все окрытые порты на уделенном компьютере в С#? Спасибо. |
| Автор: -Mikle- 6.3.2007, 18:04 |
| Думаю что скорость увеличить не получится. Выход вижу пока что только один: Сделать класс, который запускает сканирование одного порта в отдельном потоке. А скорость будет достигаться одновременностью выполнения сканирования нескольких портов. Конечно же не прямопропорциональна, но все же. Реализация должна быть такой, что создается несколько потоков и им раздается задание. Как только завершается задание у какого-то потока, он об этом сообщает и ему дается следующее задание. Если выберешь этот вариант, то я могу помочь в реализации задачи. Но вдруг кто-то предложит что-то лучше, чем пул потоков. |
| Автор: headzero 6.3.2007, 18:11 |
| Я тоже так думал. Возможно чето получится.Если можно,поделись своими набросками. Спасибо. |
| Автор: Gelis 6.3.2007, 19:38 | ||
| Можно поступить двумя способами 1. Криво - пустить подключение в несколько потоков 2. И правильно с помощью ассинхронного метода headzero, код приведенный вами взят из книги "Сетевое программирование для профессионалов". Там сразу после этого примера рассказывается про асинхронное программирование. Будут какие-то вопросы пишите. Вот работающий пример, за пару секунд сканирует все порты.
|
| Автор: headzero 6.3.2007, 21:30 |
| Да Gelis мой пример именно из той книги.Сейчас почитаю дальше.Спасибо за пример.Объясни,пожалуста,как он работает. |