Forum: Netzwerke
Delphi
by shmia,
24. Sep 2010
Nein muss er nicht.
Der Sender kann seine Daten einfach raushauen und braucht dazu keine Bestätigung durch den Empfänger.
Während der Filetransfer läuft braucht keine Rückmeldung in Form von "OK" oder Ähnliches durchgeführt werden.
Es gibt hier nur eine Ausnahme:
Falls der Empfänger während des Filetransfers abbrechen möchte, müsste er eine Cancel-Nachricht schicken und der Sender müsste...
Forum: Netzwerke
Delphi
by shmia,
23. Sep 2010
Du solltest vor den Nutzdaten die (Gesamt-)Länge der Datei schicken. (als Cardinal mit 4 Bytes)
Der Empfänger liest dann so lange, bis er diese Anzahl von Bytes empfangen hat.
Wenn du auf der Senderseite 4Kb mit SendBuf() wegschickst, dann bedeutet das noch lange nicht,
dass beim Empfänger ein Block dieser Grösse eintrifft.
Die Wartezeit von 200ms kaschiert nur das Problem.