Einzelnen Beitrag anzeigen

Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

indy 9 wenn nur ein teil vom buffer gesendet wurde,abbrechen

  Alt 8. Mär 2008, 23:33
hi,

empfange meine daten in einem buffer
Delphi-Quellcode:
TMyBufferGros = record
  int : integer;
  text : string[50];
end;

TMyBufferKlein = record
  text : string[10];
end;
hier wird der buffer empfangen
AThread.Connection.ReadBuffer(mybufferGros,sizeof(TMyBufferGros)); wenn jetzt aber mybufferklein gesendet wird der readbuffer ja nicht beendet weil mybuffergros größer wie mybufferklein ist. Was kann ich da machen?


Probiert habe ich es mit
Delphi-Quellcode:
  AThread.Connection.ReadTimeout := 2000;
  try
    AThread.Connection.ReadBuffer(mybufferGros,sizeof(tmybufferGros));
    ...
  except
    On E : EIdReadTimeout do
    begin
      bTimeOut := true;
      exit;
    end;
  end;
  //daten verarbeiten
wenn ich aber erst mybufferklein sende wird zwar ein timeout ausgelöst aber die daten stecken noch irgend wo im speicher, wenn ich dann den richtigen buffer also mybuffergros schicke stimmen die daten nicht.

hoffe ihr wist was ich meine, ist schwer zu erklären.....
  Mit Zitat antworten Zitat