Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdTCPServer - Client verbindung richtig trennen (https://www.delphipraxis.net/112239-idtcpserver-client-verbindung-richtig-trennen.html)

alleinherrscher 17. Apr 2008 11:14


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:

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;
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:

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

hincapie 17. Apr 2008 11:32

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 http://delphi.about.com/od/indy/ss/screen_thief2.htm

alleinherrscher 17. Apr 2008 11:39

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 -> link zum prog


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