Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размер буфера в scktscomp.pas [D7, WinXP]


RGV ©   (2009-03-24 07:19:00) 

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


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


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


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


RGV   (2009-03-24 08:49:00) [2]

:)


brother   (2009-03-24 08:47:00) [3]

нюню ;)


RGV   (2009-03-24 08:46:00) [4]

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


brother   (2009-03-24 08:45:00) [5]

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

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

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

дай то бог;)


RGV   (2009-03-24 08:42:00) [6]

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


brother   (2009-03-24 08:41:00) [7]

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


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

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


brother   (2009-03-24 08:36:00) [9]

и что это?


RGV   (2009-03-24 08:35:00) [10]

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:33:00) [11]

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


brother   (2009-03-24 08:31:00) [12]

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


RGV   (2009-03-24 08:28:00) [13]

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


brother   (2009-03-24 08:26:00) [14]

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо