Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


2-1297941333
candide
2011-02-17 14:15
2011.05.29
Печать таблицы StringList


2-1298200252
ddd329
2011-02-20 14:10
2011.05.29
MDI форма в пределах окна?


15-1297449232
GrayFace
2011-02-11 21:33
2011.05.29
RE: getObject - Баг или фича?


9-1189415446
Help me!
2007-09-10 13:10
2011.05.29
Есть какая-нибудь разница в способе создания MIPMAP?




   Наверх