Конференция "Сети" » Размер буфера в scktscomp.pas [D7, WinXP]
 
  • RGV © (24.03.09 07:19) [0]
    При посылке сообщения свыше 4 кб. на принимающей стороне событие onRead "срабатывает" 2 раза.
    Полагаю нужно в ScktsComp.pas изменить размер буфера.
    Подскажите пожалуйста, можно ли считать размер буфера и изменить и как?
    Спасибо.
  • Сергей М. © (24.03.09 08:21) [1]
    Не надо ничего менять.
    Изменение размера буфера не гарантирует ожидаемую тобой "однократность срабатывания" - это особенность TCP.
  • brother © (24.03.09 08:26) [2]
    возможно, размер так и сделан, чтоб 4 Кб за раз, а остальное... это уже другое)
  • RGV © (24.03.09 08:28) [3]
    А что делать, если у меня в каждом сообщении в начале идет команда, а потом сообщение.
  • brother © (24.03.09 08:31) [4]
    что смущает то?
  • brother © (24.03.09 08:33) [5]
    посыл команды, клиент получает команду и начинает получать данные, складывая в буффер, как только пришел посыл команды (типа конец передаче), то работаем с буффером ;)
  • RGV © (24.03.09 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 © (24.03.09 08:36) [7]
    и что это?
  • RGV © (24.03.09 08:40) [8]
    :D ну ... я примерно написла так как уменя происходит :D а что?
  • brother © (24.03.09 08:41) [9]
    алгоритм в [5] понятен? если да - вперед, реализовывать!
  • RGV © (24.03.09 08:42) [10]
    Кароче понятно. Последую совету [5]
  • brother © (24.03.09 08:45) [11]
    > :D ну ... я примерно написла так как уменя происходит :D
    > а что?

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

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

    дай то бог;)
  • RGV © (24.03.09 08:46) [12]
    ээээээ опечатка однако
  • brother © (24.03.09 08:47) [13]
    нюню ;)
  • RGV © (24.03.09 08:49) [14]
    :)
  • Сергей М. © (24.03.09 12:28) [15]

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


    Аккумулируй на стороне приемника поступающий поток данных до получения целого сообщения (сообщения ожидаемого приемником размера) и только потом делай бла-бла-бла
 
Конференция "Сети" » Размер буфера в scktscomp.pas [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.002]