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