Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Помогите с компонентами от Indy


Автор: Nocsm 12.9.2005, 08:35
Здравствуйте.
Суть вопроса: на форме лежат два компонента - IdUDPClient и IdUDPServer из Indy Clients и Servers соотв-но.
Установки IdUDPClient:
Active=True
BroadcastEnabled=True
BufferSize=8192
Host=255.255.255.255
Port=1600
ReceiveTimeout=10

Установки IdUDPServer:
Active=True
Bindings={пусто}
BroadcastEnabled=True
BufferSize=8192
DefaultPort=1600
ThreadedEvent=False

Вот с этими установками все работает нормально. А теперь внимание вопрос: как мне поменять порт соединения в runtime? Замаялся уже, че только не фантазировал - нет связи. Если же нужный
порт прописываю в Object Inspector'e в designtime - все работает отлично. В чем проблема?

Автор: Snowy 12.9.2005, 10:27
Скорее всего у тебя сервер активен, когда ты меняешь порт.
Сначала нужно Active выключить, потом менять порт, потом снова включить.

Автор: Nocsm 13.9.2005, 08:18
Snowy>> пробовал - не помогает. Причем ошибок то никаких не выдается, а связи просто нет.

Автор: Snowy 13.9.2005, 10:23
Цитата(Nocsm @ 13.9.2005, 08:18)
Snowy>> пробовал - не помогает. Причем ошибок то никаких не выдается, а связи просто нет.

Проверил. Действительно.
Опять классическая ошибка Indy.
Не любит Indy переконнекты.
Выход только один: Создавай клиент и сервер динамически.
При смене порта, уничтожай их, создавай снова, но уже с новым портом.
Проверил - так работает. Впрочем как всегда.
Эта бага похоже в наличии во всех компонентах Indy.

Автор: Nocsm 15.9.2005, 16:34
Snowy>>спасибо за помощь, ато я уже было в DirectHand начал сомневаться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)