![]() |
IdTCPServer - Client verbindung richtig trennen
Hi@all
Meine Frage dreht sich im Folgendes: Ich verschicke größere Dateien per IdTCPServer und IdTCPClient, wobei der Client eine Verbindung zum Server herstellt, die Datei in einen Stream läd und dann kleine Stücken des Streams in einer While Schleife verschickt.
Delphi-Quellcode:
Es kann jetzt jedoch vorkommen, dass der Client vor dem Erreichen des Streamendes disconnecten muss (entweder z.B. wenn die Netzwerkverbindung getrennt wurde, oder eine Datei mit höherer Priorität gesendet werden soll). In diesem Fall soll der Server das Datenpaket speichern, damit später von den entsprechenden Stelle aus weitergesendet werden kann:With idTcpClient1 do Socket.Connect Socket.writeln(inttostr(Datenstream.size)); //unschön, muss noch verbessert werden while (Datenstream.position<Datenstream.size) and KeineDateiMitHoehererPrioritaetVorhanden do //Paket senden; Disconnect; end;
Delphi-Quellcode:
With AContext.Connection do SizeOfIncomingFile:=strtoint(Socket.readln); try while (Datenstream.size<SizeOfIncomingFile) do //empfangen except //Stream sichern für späteres fortsetzen end; if not disconnected then Disconnet; end; Leider bekomme ich andauernt Exceptions u.A. dem Fehler: #10053 Software caused connection abort. (Klar, weil ich ja einfach die Verbindung beende, aber wie kann ich den Server vorwarnen, dass gleich die Verbindung getrennt wird?) Wenn jemand eine Idee hat, wäre ich sehr sehr dankbar! Vlg, Alleinherrscher |
Re: IdTCPServer - Client verbindung richtig trennen
Hhmm, ich weiß jetzt nicht genau, ob es das ist was Du suchst...
Aber schau Dir mal dieses Beispiel näher an ![]() |
Re: IdTCPServer - Client verbindung richtig trennen
Danke, aber es geht darum, dass ich grade rumexperimentiere, wie man unterbrochene Downloads wieder aufnehmen kann. den "Rest" hab ich schon programmiert ->
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz