![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер буфера в 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.