Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Вниз

Как быстро проверить наличие клиента на компе в сети?   Найти похожие ветки 

 
Chorniy   (2008-12-23 12:10) [0]

Я делаю так, но меня не устраивает скорость работы:

1. Создаю список, элементами которого являются объекты TTcpClient. Каждый объект соответствует компьютеру в локальной сети.

2. В цикле вызываю метод TTcpLient.Connect для каждого клиента.

в сетке 20 компов... моей проги на них нет, то есть метод connect завершается неудачно. В итоге получается что основной поток приложения обрабатывает цикл 20-30 сек, что недопустимо.

Нет ли способа побыстрее проверить наличие клиента на компе из сетки?

я конечно думал о отдельном потоке для каждого TTcpClient, но почему то мне кажется что это некорректно ))) и можно сделать проще.


 
Сергей М. ©   (2008-12-23 12:13) [1]

Стесняюсь спросить, а зачем потребовалось выяснять "наличие клиента на компе в сети" заранее ?


 
Chorniy   (2008-12-23 12:19) [2]

ну например если это будет чат, чтобы знать какой из пользователей тоже его запустил.


 
Chorniy   (2008-12-23 12:20) [3]

в общем мне необходим список компьютеров, на которых тоже запущено приложение.


 
Chorniy   (2008-12-23 12:23) [4]

и вообще откуда возникает эта пауза? по несколько секунд для каждого компа... при нынешних скоростях обмена информацией. Тот же пинг проходит за несколько миллисекунд.


 
Chorniy   (2008-12-23 12:31) [5]


> Стесняюсь спросить, а зачем потребовалось выяснять "наличие
> клиента на компе в сети" заранее


хех.. скорее всего этот вопрос вызван неправильной идеологией моего решения)))) как тогда при запуске многих клиент-серверных приложений, они мгновенно (менее секунды) определяют компьютеры на которых клиент запущен?


 
Сергей М. ©   (2008-12-23 12:31) [6]


> Chorniy


Не так это делается обычно.
Либо чат должен быть централизованным (т.е. иметь выделенный сервер-координатор) либо заинтересованный клиент посылает бродкаст-сообщение а-ля "Есть кто живой ?" и все "живые" обязаны на него ответить а-ля "Я, такой-то, жив по такому-то адрес:порт"


> откуда возникает эта пауза?


Из-за соответствующего дифолтного коннект-таймаута в winsock


 
Chorniy   (2008-12-23 12:55) [7]


> бродкаст-сообщение


вот это мне и нужно. с помощью чего ето реализуется в делфи? просто название темы куда копать)))


 
Сергей М. ©   (2008-12-23 13:02) [8]

С помощью практически любого компонента, использующего в качестве транспортного протокол UDP.


 
Chorniy   (2008-12-23 13:06) [9]

ок, спс сергей. идею понял..ушел реализовывать))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
2-1230401829
Nostalgia
2008-12-27 21:17
2009.02.08
одномерные массивы


15-1229325301
@!!ex
2008-12-15 10:15
2009.02.08
Подскажите хостера...


2-1230156993
Zilog
2008-12-25 01:16
2009.02.08
Пропадают серии в TChart


15-1229270511
KilkennyCat
2008-12-14 19:01
2009.02.08
Схема IPAQ H2200. После двух суток поиска.


15-1229107648
yri
2008-12-12 21:47
2009.02.08
gps навигация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский