Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WriteBuffer в InDy 10 [D2005, XP]


Volfram ©   (2007-01-06 16:39:00) 

сабж :( Где он? В моей книжке по 9му инди и всюду в нете упоминается отличная функция WriteBuffer у TidTCPClient. в 10м же ее нигде нет - ни в функциях клиента, ни в IOhandler. Я что то не то ищу? Очень неохота переставлять BDS...


Anatoly Podgoretsky   (2007-01-07 13:22:00) [1]

> Германн  (07.01.2007 02:06:15)  [15]

У меня к Инди особых претензий нет, кроме того что это чужеродный продукт для Виндоус и Дельфи, у него идеология Юникса, ну и с каждым годом становится все большим монстром, версия 10 уже убивает.
Есть места где он вполне справляется, например просты клиенты, например файл там закачать, но только как выходишь на серверную сторону, особенно со сложной, многопоточной логикой, так хоть сам вешайся, проект разваливается на глазах и чтобы добиться устойчивой и не противоречивой работы, надо приложить не дюжинные силы.
С ICS такого нет, все просто и в стиле Дельфи - обработчики и реакция в них. В 10 версии Инди они попытались реализовать Driven Event Model - получилось отвратительно. Надо сидеть на версии 8 или 9 и не рыпаться или самому писать с самого нижнего уровня.

Что толку что Инди 10 имеет уже готовый NNTP сервер, еще бы он и работал, если посмотреть архивы форума Инди, то волосы становятся дыбом.

И у обеих продукто общая головная боль - это документация, это типовой недостаток Open Source. Инди в этом случае хотя бы внешне получше.


Anatoly Podgoretsky   (2007-01-07 13:15:00) [2]

> Германн  (07.01.2007 02:06:15)  [15]

> Но чёрт меня дёрнул дать ссылку на Ваш перевод одному нашему (уже бывшему) сотруднику.

Да ты сильно лоханулся


Германн   (2007-01-07 02:06:00) [3]


> Anatoly Podgoretsky ©   (07.01.07 01:57) [14]
>
> > Германн  (07.01.2007 01:41:13)  [13]
>
> Точно также будет быстро забыт, хотя не так легко как Инди.
>  Я последний раз работал с ICS в 2000 и когда вернулся к
> нему, как будто и не бросал. Так же Дельфи, чего нельзя
> сказать про Инди.
>

Ну я то с Инди практически не работал. Только с ICS. Но чёрт меня дёрнул дать ссылку на Ваш перевод одному нашему (уже бывшему) сотруднику. Он обрадовался, почитал, сделал, и ушел. :( Исходники остались, но ... Спрашивал его о версиях Инди и Дельфи. Всё по-пусту. :(


Anatoly Podgoretsky   (2007-01-07 01:57:00) [4]

> Германн  (07.01.2007 01:41:13)  [13]

Точно также будет быстро забыт, хотя не так легко как Инди. Я последний раз работал с ICS в 2000 и когда вернулся к нему, как будто и не бросал. Так же Дельфи, чего нельзя сказать про Инди.


Германн   (2007-01-07 01:41:00) [5]


> Anatoly Podgoretsky ©   (07.01.07 01:33) [12]
>
> > Eraser  (07.01.2007 01:20:11)  [11]
>
> Забывается мгновенно, я почти полностью забыл Инди менее
> чем за месяц, помню только общие моменты.
>

А ICS помнится дольше? Или просто потому, что его чаще пользуете?


Anatoly Podgoretsky   (2007-01-07 01:33:00) [6]

> Eraser  (07.01.2007 01:20:11)  [11]

Забывается мгновенно, я почти полностью забыл Инди менее чем за месяц, помню только общие моменты.


Eraser   (2007-01-07 01:20:00) [7]

> [7] Volfram   (06.01.07 18:45)


> WriteBuffer - это процедура такая была в 9м ИнДи :)

ага и точно.. щас вспомнил )) совсем памяти у меня нету )


vegarulez   (2007-01-06 20:16:00) [8]

Да полностью присоединяюсь к вышесказанному спасибу.
И ещё большее спасибо за сайт. Это вообще гладезь знаний... очень много оттуда почерпнул и черпаю до сих пор...

p.s. Благодарный начинающий.


Volfram   (2007-01-06 19:31:00) [9]

Спасибо огромное, отличная вещь, сейчас меня выручает :) Жаль что с 10м ИнДи расходится.. -_-


Anatoly Podgoretsky   (2007-01-06 18:47:00) [10]

> Volfram  (06.01.2007 18:45:07)  [7]

Было дело, переводил.


Volfram   (2007-01-06 18:45:00) [11]

2 Eraser
WriteBuffer - это процедура такая была в 9м ИнДи :)
procedure WriteBuffer(const ABuffer; AByteCount: Longint; const AWriteNow: Boolean = False);

А за способ спасибо!

2 Anatoly Podgoretsky
А это не вы случаем перевели Indy in Depth? :)


Anatoly Podgoretsky   (2007-01-06 18:23:00) [12]

> Volfram  (06.01.2007 16:39:00)  [0]

Каждая версия Инди не помнит про предыдущии.


Eraser   (2007-01-06 17:55:00) [13]

> [4] Volfram   (06.01.07 17:44)

так зачем для пересылки лезть в WriteBuffer? по-умолчанию он вообще, на сколько мне известно, выключен!

> А рекорд как мне переслать тогда?

что-то типа того

var
 bytes: TBytes;
...
 bytes := RawToBytes(Rec, SizeOf(TRec));
 IdTCPClient1.IOHandler.Write(bytes);


Volfram   (2007-01-06 17:44:00) [14]

зашибись :) А рекорд как мне переслать тогда? Придумал вариант с пересылком TStream, в который, в своб очередь, сделан WriteBuffer :) Но никак не разберусь, где нужно указывать размер поля - внутри стрима, перед посылкой стрима в сокете, и там и там... ??? 0_о


Eraser   (2007-01-06 17:14:00) [15]

и точно, эт я напутал!

есть поле FWriteBuffer: TIdBuffer; но оно естесственно private, а public свойства нету, видать зачем то разработчики решили не давать прямой доступ к этому буфферу )


Volfram   (2007-01-06 16:59:00) [16]

И что он из себя представляет? Судя по хелпу, это представление принятых через сокет данных. А послать то эти данные как?


Eraser   (2007-01-06 16:51:00) [17]

> [0] Volfram   (06.01.07 16:39)

.IOHandler.InputBuffer


Наверх

Титульная страница Поиск, карта сайта Написать письмо