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

Вниз

Help   Найти похожие ветки 

 
boolean   (2002-10-07 13:40) [0]

TServerSocket, TClientSocket. С клиента отправляю данные SendBuf.
На сервер принемаю RecieveBuf. Считываю из буфера по кусучкам. Отправляю 1 мой пакет. Считываю, сначала, 4 байта (узнаю длину 1-го моего пакета, потом остальное). Вопрос в том, что OnClientRead почему-то вызывается после этого еще раз, при этом Socket->ReceiveLength() равно 0. Когда я после этого еще раз посылаю данные, на клиенте срабатывает событие OnError, eeSend и клиент отрубается. Но когда я считываю из буфера сокета все данные за раз, то OnClientRead 2-й раз не срабатывает. И все нормально работает. Но я хочу считывать из буфера данных ровно на 1 мой пакет. В чем может быть загвоздка?


 
F1   (2002-10-18 14:12) [1]

Я тоже столкнулся с такой проблемой и не нашел другого решения, чем принимать все сразу, а потом разколбашивать что куда надо, иначе вообще хрень какая-то - лишние данные.


 
Digitman ©   (2002-10-18 14:38) [2]

Считывать в OnRead() нужно ровно столько, сколько ожидается по логике по логике "машины состояния транспорта", но не более ReceiveLength()

Если же ReceiveLength = 0 и по логике машины состояния ничего не ожидается, ничего считывать не нужно - просто выход из обработчика OnRead()


 
F1   (2002-10-18 17:06) [3]

Дык я пробовал считывать меньше чем ReceiveLength -все вроде бы нормально, но могут появиться лишние данные - 60 нулей. Откуда они беруться???


 
Digitman ©   (2002-10-18 17:43) [4]

Почем мне знать, откуда у тебя 60 нулей берутся ?)
Приводи код приемника и передатчика - разберемя, думаю


 
Rouse_ ©   (2002-10-18 22:35) [5]

В FAQ есть привер как именно это сделать

Желаю упехов



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
1-51690
Slavik2k
2002-12-05 20:04
2002.12.16
Transparent и clear


1-51813
Teapot
2002-12-04 13:41
2002.12.16
Как получить параметр ?


1-51825
HP
2002-12-05 11:14
2002.12.16
FastReprt


4-52005
Demn
2002-11-03 07:13
2002.12.16
Как вызвать системное окошко с пропертисами файла


1-51691
aterm
2002-12-04 13:11
2002.12.16
Какой код у клавиши delete