Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.04;
Скачать: CL | DM;

Вниз

Еще раз про Indy idTCPClient   Найти похожие ветки 

 
mRodion ©   (2003-10-06 18:47) [0]

Здесь http://delphi.mastak.ru/cgi-bin/forum.pl?id=1060180141&n=4
уже частично затрагивалась эта тема, но там уже слишком много флейма. Поэтому спрошу здесь:
Господа, помогите найти ответ на вопрос.

Логика написанной программы требует у обертки Socket"а наличия какого-нибудь события OnRead, которое возникает по приходу из сокета данных.
Ранее использовалась компонента
===
TSock Component
Version 1.0g
Written By Tom Bradford
(C) 1997 By Beach Dog Software, Inc.
(R) All Rights Reserved
===

Теперь в силу ряда причин хочется использовать Indy idTCPClient
У него нет подобного события. Можно, конечно, использовать дополнительно таймер, в котором периодически выполнять команнду ReadBuffer, но ей нужно указывать, какое количество байт мы хотим принять. Вся беда в том, что я заранее не знаю, сколько надо принимать. Я не знаю бинарные данные идут или текстовые. Это отслеживается на следующем уровне протоколов. А свойства, говорящего о том, какое количество байт принято во внутренний буффер компоненты, я не нашел.
Очень уж показалось похожим на нужное свойство
idTCPClient.InputBuffer.PackReadedSize, но в нем все время 32768. Описания этого свойтсва в хелпе нет.

Итак, как узнать сколько байт пришло по сокету, чтобы их прочитать методом ReadBuffer?


 
Reindeer Moss Eater ©   (2003-10-07 09:01) [1]

1. Нужны события и асинхронное чтение данных - используй библиотеку заточенную под это дело. Например ICS.

2. Вся беда в том, что я заранее не знаю, сколько надо принимать. Я не знаю бинарные данные идут или текстовые.

Это очень плохо. Это означает, что у тебя не продуман протокол обмена с сервером. Сменой библиотек и изменением кода эту проблему не решить.



Страницы: 1 вся ветка

Текущий архив: 2003.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
6-11675
mRodion
2003-10-06 18:47
2003.12.04
Еще раз про Indy idTCPClient


4-11733
Andriy Tysh
2003-10-07 20:30
2003.12.04
Убрать заголовок окна


6-11664
Stas
2003-10-08 09:26
2003.12.04
Документация по TCP/IP


1-11604
DLLMaN
2003-11-25 15:25
2003.12.04
В бувер из консольной проги.


4-11737
maxi
2003-10-07 08:57
2003.12.04
Как узнать имя пользователя домена по его аккаунту ????