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

Вниз

Размер буфера в scktscomp.pas   Найти похожие ветки 

 
RGV ©   (2009-03-24 07:19) [0]

При посылке сообщения свыше 4 кб. на принимающей стороне событие onRead "срабатывает" 2 раза.
Полагаю нужно в ScktsComp.pas изменить размер буфера.
Подскажите пожалуйста, можно ли считать размер буфера и изменить и как?
Спасибо.


 
Сергей М. ©   (2009-03-24 08:21) [1]

Не надо ничего менять.
Изменение размера буфера не гарантирует ожидаемую тобой "однократность срабатывания" - это особенность TCP.


 
brother ©   (2009-03-24 08:26) [2]

возможно, размер так и сделан, чтоб 4 Кб за раз, а остальное... это уже другое)


 
RGV ©   (2009-03-24 08:28) [3]

А что делать, если у меня в каждом сообщении в начале идет команда, а потом сообщение.


 
brother ©   (2009-03-24 08:31) [4]

что смущает то?


 
brother ©   (2009-03-24 08:33) [5]

посыл команды, клиент получает команду и начинает получать данные, складывая в буффер, как только пришел посыл команды (типа конец передаче), то работаем с буффером ;)


 
RGV ©   (2009-03-24 08:35) [6]

procedure TForm1.csClientRead(Sender: TObject;  Socket: TCustomWinSocket);
var
 msg:string;
begin
 Msg := Socket.ReceiveText;
 ReceiveMsg(msg);
end;

Procedure TForm1.ReceiveMsg(message:string);
var
 cmd,msg:string;
begin
 cmd:=copy(message,1,4);  
 msg:=copy(message,5,length(message)-4);
 if cmd="...." then
 begin
   //bla bla bla
 end;
end;


 
brother ©   (2009-03-24 08:36) [7]

и что это?


 
RGV ©   (2009-03-24 08:40) [8]

:D ну ... я примерно написла так как уменя происходит :D а что?


 
brother ©   (2009-03-24 08:41) [9]

алгоритм в [5] понятен? если да - вперед, реализовывать!


 
RGV ©   (2009-03-24 08:42) [10]

Кароче понятно. Последую совету [5]


 
brother ©   (2009-03-24 08:45) [11]

> :D ну ... я примерно написла так как уменя происходит :D
> а что?

из анкеты:
Реальное имя: Gennadiy
Пол: Мужской
О_о

зы
> Кароче понятно.

дай то бог;)


 
RGV ©   (2009-03-24 08:46) [12]

ээээээ опечатка однако


 
brother ©   (2009-03-24 08:47) [13]

нюню ;)


 
RGV ©   (2009-03-24 08:49) [14]

:)


 
Сергей М. ©   (2009-03-24 12:28) [15]


> А что делать, если у меня в каждом сообщении в начале идет
> команда, а потом сообщение


Аккумулируй на стороне приемника поступающий поток данных до получения целого сообщения (сообщения ожидаемого приемником размера) и только потом делай бла-бла-бла



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
3-1259497210
Sirus
2009-11-29 15:20
2011.05.29
RefreshSQL в ZeosDBO PostgreSQL


1-1255528243
dima_q
2009-10-14 17:50
2011.05.29
Повторный запуск рабочего потока


3-1259512660
lamer6666
2009-11-29 19:37
2011.05.29
Zeos и MySQL


15-1297845759
bss
2011-02-16 11:42
2011.05.29
TOleContainer


15-1297702024
>|<
2011-02-14 19:47
2011.05.29
Вероятностный чип перевернул мир вычислений отказом от двоичной л