Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Generelle Frage zu den Indy-Komponenten (https://www.delphipraxis.net/174863-generelle-frage-zu-den-indy-komponenten.html)

Der schöne Günther 15. Mai 2013 08:17

Generelle Frage zu den Indy-Komponenten
 
Hallo-

Eigentlich bin ich ein großer Freund von Abstraktionen, beispielsweise der Delphi-Aufsatz TThread zu reinen WinAPI-Methoden.

Aber mit den Indy-Komponenten komme ich ehrlich gesagt überhaupt nicht zurecht. Die blöden Teile werfen bei jeder erdenklichen Gelegenheit Exceptions: Ich habe eine kleine Library im Einsatz, welche auch Indy-Komponenten verwendet. Blöd nur, wenn diese im Destruktor ein
Delphi-Quellcode:
DisconnectClient()
von Indy ausführt, dieses aber eine Exception wirft und die nicht gefangen wird. Ich scheine also nicht der einzige zu sein, der da nicht wirklich durchblickt zumal ich entweder zu dumm bin, oder das auch in der (wenn überhaupt vorhandenen) Quelltext-Doku nicht kenntlich gemacht wird.

Ich brauche keine konkrete Hilfe, auf lange Sicht ist mir der ganze Kram jetzt schon so unsympathisch dass ich es wahrscheinlich wieder manuell über WinSockets machen werde. Ich möchte nur wissen, ob es mir nur so vorkommt, oder die Indy-Dinger wirklich wunderbar gerne bei jeder Gelegenheit Exceptions werfen - Und wenn ja, ob das überhaupt gut gelöst ist. Die zwingen einen ja gerade dazu, Exceptions zu essen...

baumina 15. Mai 2013 08:33

AW: Generelle Frage zu den Indy-Komponenten
 
Also ich habe mich schon vor ein paar Jahren gegen Indy entschieden, weil es mir auch nur Probleme gemacht hat. Indy 9 hatte was was ich brauchte, das in Indy 10 nicht ging und Indy 10 hatte was was ich brauchte, das wiederrum in Indy 9 nicht ging. Durch ständiges Switchen von Indy 9 auf 10 und wieder zurück war zum Schluss das komplette Chaos, so dass ich, bevor ich komplett verzweifelte, das ganze anders gelöst hatte.

Allerdings fällt mir hier auf, dass es wohl doch viele gibt, die Indy verwenden, oder fällt es mir hier nur auf, dass so viele Probleme damit haben, wer weiß...

taveuni 15. Mai 2013 08:34

AW: Generelle Frage zu den Indy-Komponenten
 
Deshalb benutzen wir schon lange die meiner Meinung nach robusten ICS oder manchmal Synapse.

DataCool 15. Mai 2013 08:41

AW: Generelle Frage zu den Indy-Komponenten
 
@Der schöne Günther:
Wo liegt den konkret Dein Problem mit den Indys ?!

Klar die Indys schmeissen viele Exceptions, das ich aber auch so gewollt!
Exceptions zum Fehlerhandling! Wenn man das weiß & berücksichtigt, lässt sich mit Indy gut arbeiten.
Ich habe die Indys in einigen Projekten zur TCP/IP Kommunikation genutzt und würde es wieder tun.

Greetz Data


P.S.: ICS & Synapse funktionieren aber auch

Hansa 15. Mai 2013 08:46

AW: Generelle Frage zu den Indy-Komponenten
 
Also mich verwundert die Frage schon sehr. :shock: Ich bin immer noch etwas erstaunt darüber, dass es einwandfrei gelingt mit 10 Zeilen eine email zu empfangen oder einen FTP-Server zu bestücken.

Wo kommen denn die Exceptions überhaupt her ? Zeig mal eine. Vielleicht liegt der Fehler ja auch hier :

Zitat:

Zitat von Der schöne Günther (Beitrag 1215358)
Eigentlich bin ich ein großer Freund von Abstraktionen, beispielsweise der Delphi-Aufsatz TThread zu reinen WinAPI-Methoden.

...


Der schöne Günther 15. Mai 2013 09:00

AW: Generelle Frage zu den Indy-Komponenten
 
Zitat:

Zitat von DataCool (Beitrag 1215365)
Exceptions zum Fehlerhandling! Wenn man das weiß & berücksichtigt, lässt sich mit Indy gut arbeiten.

Wie gesagt, ich habe kein konkretes Problem - Es geht darum, dass ich leider nicht riechen kann, wo unter Umständen Exceptions geworfen werden (siehe auch ein anderes Thema von mir). Die Indy-Teile zwingen mich geradezu, alles mögliche in try-Blöcke zu legen und die Exceptions zu essen - Dem Benutzer irgendwelche Messageboxen mit "Socket Error #10053!!" auf den Bildschirm zu knallen ist keine Art.

Ich will nichts schlechtreden, vielleicht habe ich auch einfach nur eine tolle Dokumentation übersehen. Der Quelltext von idTCPConnection beispielsweise besteht zu 25% aus einer Changelog und mindestens 10% von Kommentaren zu Fehlern aus Vorgängerversionen. Auch wenn die Methodennamen halbwegs selbstredend sind - Was drinnen nun konkret vorgeht hätten ein paar Kommentare gerne näher erläutern können.

Mein Punkt war nur, dass ich anscheinend nicht der einzige bin, der solche Probleme hat. Ich wollte nur wissen, ob das von der Indy-Philosophie wirklich so gewollt ist. Ganz gemütlich plauschen.

DataCool 15. Mai 2013 09:08

AW: Generelle Frage zu den Indy-Komponenten
 
@Der schöne Günther:
Jap, das ist so gewollt! Wie Hansa auch schon sagt, so viele Exceptions sind es gar nicht mehr. FTP, Email und andere Protokolle laufen komplett ohne Exceptions ab(es sei den es kann nicht verbunden werden oder es fehlen Rechte).
Wenn Du eine eigene Kommunikation mit IdTcpServer und IdTcpClient aufbaust, gibt es auch nur 4 Stellen wo Du was abfangen must:
- Connect
- Disconnect
- Alle Schreiboperationen
- Alle Leseoperationen

Ob Du diese dann ignorierst oder weiter verarbeitest bleibt allein Dir überlassen.
Viele der Exceptions erscheinen auch nur innerhalb der IDE !!!

Hoffe das hilft weiter,

Greetz Data

mjustin 15. Mai 2013 09:16

AW: Generelle Frage zu den Indy-Komponenten
 
Zitat:

Zitat von DataCool (Beitrag 1215375)
Wenn Du eine eigene Kommunikation mit IdTcpServer und IdTcpClient aufbaust, gibt es auch nur 4 Stellen wo Du was abfangen must

Wobei man beim TIdTCPServer natürlich vermeiden sollte, die Exceptions abzufangen, die Indy mitbekommen muss um eine Connection zu schliessen. Siehe zum Beispiel http://www.delphipraxis.net/139748-t...isconnect.html

DataCool 15. Mai 2013 10:33

AW: Generelle Frage zu den Indy-Komponenten
 
Ganz genau, eine der wenigen bösen Stolperfallen !! Gute Anmerkung

sh17 15. Mai 2013 10:44

AW: Generelle Frage zu den Indy-Komponenten
 
Eine Komponente zu verwenden, die im Destroy ein Disconnect mit potentieller Exception verwendet ist aber auch nicht gerade das gelbe vom Ei, da würde ich eher hier ansetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 1 von 3  1 23      

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