Текущий архив: 2002.12.05;
Скачать: CL | DM;
Вниз
Проблема с UDP Найти похожие ветки
← →
Pavel_S © (2002-10-08 10:19) [0]Есть сеть из 20 компов.
На первом компе стоит прога остылающая раз в N-секунд команду
на остальные компьютеры, в ответ они отсылают информацию о себе.
Проблема в том, что иногда разные компы не отсылают информацию о себе в ответ на полученную команду - то есть как я понял до них это команда не доходит. Но если перегрузить ту машину, с которой информация не приходит - то после загрузки все нормально начинает работать.
От первого компа отсылается broadcast сообщение.
Использую INDY
Прошу помощи.
← →
still © (2002-10-08 10:34) [1]а протокол UDP вообще не гарантирует доставку пакетов. если важно, чтобы пакет дошел необходимо использовать TCP
← →
Rouse_ © (2002-10-08 18:51) [2]Попробуй или ТСР или ставить на таймер, то есть, отсылаешь запрос, включаешь таймер, если через определенное время не пришло подтверждение повторяешь, но тебе нужно точно знать какие машины должны ответить
Желаю успехов
← →
Alexo Kalinovski (2002-10-10 08:38) [3]Нижерасположенный текст можно рассматривать и как вопрос...
У меня аналогичная ситуация...
Компов, правда меньше, но суть остается:
серверная прога отправляет широковещательную UDP, а клиентские программки шлют ответ о своем состоянии через случайную (!) временнУю задержку(до 2-х сек.). В функции задержки активно применяется Application.ProcessMessages, т.к., например, при Sleep(200) - все остальное в проге приостановится. Если задержка >=200ms , то все работает ОК, при условии, что клиентская и серверная программки крутятся на разных компах, в противном случае - бывают траблы.
При частом опросе (раз в секунду) клиентская часть начинает дергаться (например, странно работают TPopupMenu) или, при открытии в клиентском приложении некой модальной формы, выполнение обработчика эвента прихода UDP-пакета приостанавливается в той части, где он отправляет ответ. Разумеется, я предотвращаю повторный вход в обработчик)
Приходится применять кучу различных флажков в ущерб достоверности...
← →
Геннадий (2002-10-10 10:21) [4]TCP разумно использовать в большой сети. Где вероятный сбои - перепады напряжения, обрыв кабеля и прочее. Зачем он в локалке? Компы в двух шагах друг от друга. Почему некоторые машины не отвечают - трудно сказать. Может что в самом алгоритме?
Страницы: 1 вся ветка
Текущий архив: 2002.12.05;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c