![]() |
|
Модераторы: gambit |
![]()
|
|
| headzero |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 14.11.2006 Репутация: нет Всего: 1 |
Извините,что повторяюсь. Просто уже долго не могу дождаться ответа. Решил поменять название темы вопроса и описание, потому-что,как вижу опытных пограммистов слова "Сканер портов" или "Помогите новичку" не сильно радуют или вызывают иронию.
И все же,кому не лень, ответте,пожалуста на вопрос. Вот имеется код порт сканера:
В принципе понимаю как он работает.Пробовал сканировать разные айпишники. Но єта программа работает силно медленно: в лучшем случаи сканирует 1 порт в секунду. А ведь их больше 60000!!! Подскажите, медленность изза плохой сети или невозможно быстрее в принципе? Подскажите может ктото знает более эффктивный код.(Если можно с пояснениями). Как вообще отсканировать все окрытые порты на уделенном компьютере в С#? Спасибо. -------------------- Воображение важнее знания (Алберт Эйнштейн) |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Думаю что скорость увеличить не получится.
Выход вижу пока что только один: Сделать класс, который запускает сканирование одного порта в отдельном потоке. А скорость будет достигаться одновременностью выполнения сканирования нескольких портов. Конечно же не прямопропорциональна, но все же. Реализация должна быть такой, что создается несколько потоков и им раздается задание. Как только завершается задание у какого-то потока, он об этом сообщает и ему дается следующее задание. Если выберешь этот вариант, то я могу помочь в реализации задачи. Но вдруг кто-то предложит что-то лучше, чем пул потоков. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| headzero |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 14.11.2006 Репутация: нет Всего: 1 |
Я тоже так думал. Возможно чето получится.Если можно,поделись своими набросками. Спасибо.
-------------------- Воображение важнее знания (Алберт Эйнштейн) |
|||
|
||||
| Gelis |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 26.10.2006 Где: Брест Репутация: нет Всего: 4 |
Можно поступить двумя способами
1. Криво - пустить подключение в несколько потоков 2. И правильно с помощью ассинхронного метода headzero, код приведенный вами взят из книги "Сетевое программирование для профессионалов". Там сразу после этого примера рассказывается про асинхронное программирование. Будут какие-то вопросы пишите. Вот работающий пример, за пару секунд сканирует все порты.
|
|||
|
||||
| headzero |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 14.11.2006 Репутация: нет Всего: 1 |
Да Gelis мой пример именно из той книги.Сейчас почитаю дальше.Спасибо за пример.Объясни,пожалуста,как он работает.
Это сообщение отредактировал(а) headzero - 6.3.2007, 21:39 -------------------- Воображение важнее знания (Алберт Эйнштейн) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |