Thema: Delphi ServerSocket1ClientRead

Einzelnen Beitrag anzeigen

yildi

Registriert seit: 15. Sep 2006
23 Beiträge
 
#1

ServerSocket1ClientRead

  Alt 24. Sep 2006, 13:37
moin moin!

mein kleines serverprogramm kann mit dieser procedure binärdaten empfangen:

Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  SizeOfPacket: Integer;
  pBuffer: Pointer;
begin

      SizeOfPacket := Socket.ReceiveLength;
      GetMem(pBuffer, SizeOfPacket);
      Socket.ReceiveBuf(pBuffer^, SizeOfPacket);
      MUpdateStream.Write(pBuffer^, SizeOfPacket);
      FreeMem(pBuffer);

      if () then
        begin
          

          MUpdateStream.SaveToFile('update2.exe');
     Log.Lines.Add('('+TimeToStr(Now)+') System: Ein Server-Update wurde erfolgreich empfangen und wird nun installiert.');

          MUpdateStream.Free;
          MUpdateStream := TMemoryStream.Create;

        end;

end;


allerdings hab ich damit ein kleines problemchen. die ClientRead procedure wird ja quasi wie eine schleife immer wieder so lange aufgerufen, bis keine daten mehr empfangen werden. die empfangenen daten werden dann immer an meim MUpdateStream angehängt. am ende möchte ich dann aus dem stream eine datei erstellen.

Nur ich weiss leider nicht, wie ich meine bedingung formulieren muss, dass dieser teil quasi nur nach dem letzten empfangenen paket aufgerufen wird. man könnte von seiten des clients vorher die dateigröße übermitteln, nur dafür müsste ich insgesamt mein programm zu sehr umbauen. hat jemand noch eine andere idee ?

danke!
yildi
  Mit Zitat antworten Zitat