Главная страница
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.5 MB
Время: 0.011 c
2-1297858265
Гость
2011-02-16 15:11
2011.05.29
Напомните как можно (?) перечислить тип array of в параметр


10-1173955127
ANikolay
2007-03-15 13:38
2011.05.29
Использование TidHTTP в OLE-объекте


2-1297944223
Ghost del vonte
2011-02-17 15:03
2011.05.29
Указатель на последниий компонент потока


15-1297348833
delphi_developer
2011-02-10 17:40
2011.05.29
Программирование под iPhone


15-1297671239
Неокубинец
2011-02-14 11:13
2011.05.29
где починиться, в Москве?