Hallo,
ich hab ein kleines Problem:
ich habe zwei Programme - eines mit ServerSocket (Server), das andere mit ClientSocket (Client)
Der Server sendet an den Client eine Datei.
Code Server:
Delphi-Quellcode:
try
//Datei senden
Serversocket.Socket.Connections[ausgewaehlter_Client].SendStream(
TFileStream.Create(Edit_Quelle_Datei.Text, fmOpenRead or fmShareDenyWrite));
finally
// leer
end;
Code Client:
Delphi-Quellcode:
//Zieldatei erzeugen
ZielDatei := TFileStream.Create(SaveFile, fmCreate);
//Variablen beschreiben
ProgressBar_Update.Position := 0;
pbReceived := fSize;
//Datei empfangen und speichern
while True do
begin
nReceived := Socket.ReceiveBuf(Buffer, sizeof(Buffer));
If nReceived <= 0 then
Break
else
ZielDatei.WriteBuffer(Buffer, nReceived);
delay(300);
pbReceived := pbReceived - nReceived;
ProgressBar_Update.Position := 100 - ((pbReceived * 100) div fSize);
Application.ProcessMessages;
end;
finally
//Variablen leeren
ZielDatei.Position := 0;
Buffer := '';
//ZielDatei freigeben und löschen
FreeAndNil(ZielDatei);
Der Server übermittelt aber, bevor die Datei übertragen wird, die Größe der zu übertragenden Datei.
Nachdem der Client die Datei empfangen hat, prüft dieser ob 1. die Datei vorhanden ist und 2. ob die Größe der empfangenen Datei gleich der Größe ist, die zuvor übermittelt wurde.
Und da hab ich ein Problem. Es kann sein, dass die Größen nicht übereinstimmen.
Hat jemand ne Ahnung was es sein könnte, dass die Größen nicht übereinstimmen?
Kann es sein, dass es durch das Senden mit dem Stream zu Veränderung der Dateigröße kommen kann?