MultiPing

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

MultiPing

Сообщение |kerish| » 18.09.2007 (Вт) 13:20

Возможно ли реализовать сабж на VB с условием, чтобы он не вешал программу?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 18.09.2007 (Вт) 13:43

Обязательно ping? Может просто массивом винсоков законнектиться на один из стандартных портов? Двести компов массивом из 60и винсоков проверялись за несколько секунд без зависаний. Конечно если все двести включены. Но даже если все выключены, это занимало меньше минуты.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.09.2007 (Вт) 13:56

Все-таки ICMP именно для тестирования и предназначен, правильнее использовать его. Кроме того, это совершенно неприменимо для рабочих станций, на которых не запущены какие-нибудь сервера.
Но многопоточный пинг на VB6 наверное написать будет непросто.[/
Последний раз редактировалось alibek 18.09.2007 (Вт) 13:58, всего редактировалось 1 раз.
Lasciate ogni speranza, voi ch'entrate.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 18.09.2007 (Вт) 13:56

Ок, фиг с ним, с пингом, объясню в чем дело:

Моя программа использует UDP соединения (мониторинг игровых серверов) массива винсоков.

Они посылают специальные запросы серверам из списка.

Проблема в том, что если сервер находится хз где или еще из-за чего-то после винсоковской команды SendData происходит подвисание программы на время 1-3 секунды.

Моя задача избавиться от этого зависания.

Может у кого-нибудь есть идеи?
Помогите, плз...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 18.09.2007 (Вт) 14:06

Моя задача избавиться от этого зависания.
Может у кого-нибудь есть идеи?



Многопоточное приложение.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 18.09.2007 (Вт) 14:42

Мне кажется, что этот вариант не подойдет.
В одной из тем tyomitch сказал: "(на однопроцессорных системах) многопоточность не ускорят процесс. Единственное, что она делает - что все вычисления тормозят не по очереди, а одновременно (и сильнее)"

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.09.2007 (Вт) 14:46

|kerish|, ты не в теме.
Тебе нужно посылать ICMP в несколько потоков.
Это не вычисления.
Lasciate ogni speranza, voi ch'entrate.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 18.09.2007 (Вт) 14:52

Тебе нужно посылать ICMP в несколько потоков.
А почему бы не посылать их просто в асинхронном режиме IcmpSendEcho2?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 18.09.2007 (Вт) 17:33

А почему бы не наплодить штук 50 процессов ping а потом считать со всех то, что они пишут в stdout?
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 18.09.2007 (Вт) 18:34

Может потому что мой способ немного(раз в 10) экономичнее в плане ресурсов?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 21.09.2007 (Пт) 12:25

Вышел облом :(
Мои догадки о том, что Винсоковская SendData думает так долго из-за того, что сервер далеко или мертв были ошибочными.
Даже если сервер отлично пингуется, после SendData некоторым серверам, происходит задержка и подвисание программы :cry:

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 21.09.2007 (Пт) 17:57

Всё проблема решена!
Спасибо за помощь.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 77

    TopList  
cron