Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

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

Re: IdTCPClient: Software caused connection abort.

  Alt 13. Jul 2006, 12:24
Hi Data!

Danke für deine schnelle Antwort!!!

Erstmal: (und damit zu 2) Das Hauptformular ist ja nur ein Testprogramm für die Klasse. D.h. mit dem 5 mal in die Liste einfügen möchte ich nur simulieren, dass während des Sendens 4 weitere Elemente schon in der Liste sind...d.h. damit auch wirklich eine Listenabarbeitung erfolgt. Das wird natürlich hinterher im richtigen Programm anders sein...ist also nur ein Test...

zu 1) Dieses Komplizierte Konstrukt lehrte man uns an der Uni, und da ich mich mit Tlist etc. nicht so recht auskenne, aber mit diesen Pointergeschichten schon relativ viel gearbeitet hab, finde ich sie ganz praktisch

zu 3) Wie kann man das mit dem Thread realisieren? Beim Server gibts ja diese schöne Funktion, dass ein Synchronisierter Thread erstellt werden soll, aber beim Client?!

zu 4) da gebe ich dir vollig recht, es sind viel zu viele globale Variablen. Allerdings habe ich z.B: folgendes Problem. In Indy7 konnte man (glaube ich) beim Thread.synchronize(Procedure) eine Procedur angeben die auch Parameter haben darf. Das habe ich hier auch versucht, aber der Compiler meckert immer ... d.h. ich darf scheinbar nur eine Procedure angeben, ohne Parameter. daher muss ich leider den Stream global einlesen um ihn dann in der Procedure "HandleReceivedStream" weiterzubehandeln...ich versuche das noch ein bisschen zu optimieren Allerdings glaub mir: Ich war "scheiße froh", als das mit dem "HandleReceivedStream" endlich geklappt hat.

Zum Thema "Größe vom Stream mitschicken": Ich werde das mal versuchen, danke für den tipp, aber ich glaube nicht, dass das was mit dem eigentlichen Problem zu tun hat, denn: Wenn man immer nur ein Element in der Liste hat, also niemals direkt 2 hintereinander geschickt werden, funktioniert das Versenden ja reibungslos!

Ich habe das gefühl, dass die Variable TIdTCPClient.Connected nicht anständig funktioniert....kann das jemand bestätigen? Die scheint nicht direkt auf True zu gehen wenn eine Verbindung besteht und nicht auf false wenn die Verbindung getrennt wurde...

@Data: Kannst du mir ein paar Tipps zu dem Thread-programmieren geben? evtl (wenns nicht zu viel arbeit ist, ein paar schnipsel code oder so) wenn "wir" das hinbekommen, wirst du auch lobend erwähnt


Grüße,
Alleinherrscher
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat