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

Вниз

idTcpServer/idTcpClient   Найти похожие ветки 

 
stas ©   (2010-05-14 10:03) [0]

Подскажите пожалуйста каким образом получить клиенту ответ от сервера
отправляю по кнопке поток
...
client.WriteStream(s);

Сервер его получает и обрабатывает, потом отправляет ответ
AThread.Connection.WriteStream(s);
вопрос в том как на клиенте его получить и обработать?


 
Медвежонок Пятачок ©   (2010-05-14 10:15) [1]

Ну сделал райт, теперь делай рид.


 
stas ©   (2010-05-14 10:35) [2]

я делаю в том же обработчике т.е.
client.ReadStream(s);
И он зависает.
Уже пробовал D7 c родными Indy и D 2009. Тоже самое (


 
Медвежонок Пятачок ©   (2010-05-14 10:46) [3]

не зависает, а ждет.
длина стрима тебе неизвестна.
поэтому клиент должен читать либо до дисконнекта (если прикладной протокол  типа http) либо до наступления таймаута


 
stas ©   (2010-05-14 11:56) [4]

ставлю и размер и timeout если timeout, то через это время пишет ReadTimeout.
И если пишу так
client.WriteStream(s);
client.ReadStream(s1,280);
то и несрабатывает событие получения данных у сервера.


 
Медвежонок Пятачок ©   (2010-05-14 12:20) [5]

1. Откуда ты узнал размер стрима? Сервер его передал и ты считал этот размер? Откуда 280 байт?

2. то через это время пишет ReadTimeout.
Все верно. Получено столько данных, сколько получено.
Затем данные кончились и наступил таймаут при котором сгенерировалось исключение.

Обрабатывай его и получай свои данные. Они в стиме лежат.


 
stas ©   (2010-05-14 12:40) [6]

Медвежонок Пятачок ©   (14.05.10 12:20) [5]
Спасибо за помощь, я переделал на ReadBuffer и работает.
Размер известный, это переменная типа record.


 
Anatoly Podgoretsky ©   (2010-05-14 12:52) [7]

> stas  (14.05.2010 11:56:04)  [4]

Данные не посылаются на слушающий сокет, вот и таймаут



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
2-1271426478
davinchi
2010-04-16 18:01
2010.08.27
Как получить TEvent.WaitFor(<timeout>) с результатом wrError?


15-1268351506
istok
2010-03-12 02:51
2010.08.27
Documents and Settings в Win7...


15-1270758602
Юрий
2010-04-09 00:30
2010.08.27
С днем рождения ! 9 апреля 2010 пятница


2-1271183717
dixa
2010-04-13 22:35
2010.08.27
подстановка значения в созданный тип


15-1264680746
ИТР-самоучка
2010-01-28 15:12
2010.08.27
"Толстый клиент" или "Тонкий клиент"