AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdTCPServer - Client verbindung richtig trennen
Thema durchsuchen
Ansicht
Themen-Optionen

IdTCPServer - Client verbindung richtig trennen

Ein Thema von alleinherrscher · begonnen am 17. Apr 2008 · letzter Beitrag vom 17. Apr 2008
Antwort Antwort
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#1

IdTCPServer - Client verbindung richtig trennen

  Alt 17. Apr 2008, 12:14
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
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von hincapie
hincapie

Registriert seit: 24. Mär 2005
200 Beiträge
 
Delphi 5 Professional
 
#2

Re: IdTCPServer - Client verbindung richtig trennen

  Alt 17. Apr 2008, 12:32
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
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#3

Re: IdTCPServer - Client verbindung richtig trennen

  Alt 17. Apr 2008, 12:39
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
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz