Текущий архив: 2005.03.20;
Скачать: CL | DM;
Вниз
TClientSocket & TServerSocket Найти похожие ветки
← →
Grant (2005-01-11 14:56) [0]Может кто-нибудь сталкивался с такой проблемой. Обычно есть один компонент TServerSocket и несколько TClientSocket. У меня наоборот. Мне необходимо от TClientSocket посылать сообщения каждому TServerSocket(на разных компах). Если TClientSocket активен, то он не даёт менять свои настройки. Подскажите, пожалуйста, как из такой ситуации выкрутится?
← →
Digitman © (2005-01-11 16:20) [1]
> Обычно есть один компонент TServerSocket и несколько TClientSocket
не пори чушь.
нет никаких "обычно" по этому поводу.
> Если TClientSocket активен, то он не даёт менять свои настройки.
> Подскажите, пожалуйста, как из такой ситуации выкрутится?
"настрогать" роувно столько объектов класса TClientSocket, сколько требуется соединений с соответствующими объектами класса TServerSocket
← →
Eraser © (2005-01-12 01:33) [2]Создавай их динамически внутри процедуры или потока, откуда хочешь отсялать данный (только потом не забудь их освободить).
А вообще переходи на Indy.
← →
Beglec (2005-01-12 16:58) [3]Уважаемый Eraser
а чем прниципиально отличаются TSocket от Indy компонентов того же уровня
← →
Digitman © (2005-01-12 17:35) [4]из соображений кроссплатформенности инди-гнезда (имеются ввиду гнезда как объекты ОС, а не как компоненты Делфи-среды)инициализируются для последующей работы с ними в синхронном блокирующем режиме
← →
Eraser © (2005-01-12 20:30) [5]>> Digitman ©
Это точно, в инди используются только блокирующие сокеты,
>> Grant
ну если хочешь, чтобы приложение не подвисало можешь попробовать компонент idAntifreze (пишется как-то так :)), если его правильно настроить- все работает нормально.
А вообще я сталкивался с проблемой, когда нужно создавать много клиентов (для отсылки запроса), лучше всего их (клиенты) создавать в какой-либо одной процедуре, а затем уничтожать. В идеале их можно создавать в отдельном потоке.
А вот компонент idUDPServer, как ни пытался я создавать динамически (внутри DLL) ничего не вышло- хоть убей не перехватывалось OnUDPRead, хотя я создал метод-событие 100%, дугие компоненты (таймеры) работали как часы ;-))
Нашёл выход из этой ситуации, поместив в dll форму, а на неё положил компонент- заработло ;-) правда dll потяжелела.
Вот такая грустная история...
Страницы: 1 вся ветка
Текущий архив: 2005.03.20;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.028 c