AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Generelle Frage zu den Indy-Komponenten

Generelle Frage zu den Indy-Komponenten

Ein Thema von Der schöne Günther · begonnen am 15. Mai 2013 · letzter Beitrag vom 16. Mai 2013
Antwort Antwort
Seite 1 von 3  1 23   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 09:17
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 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...
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 09:33
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ß...
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 09:34
Deshalb benutzen wir schon lange die meiner Meinung nach robusten ICS oder manchmal Synapse.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.

Geändert von taveuni (15. Mai 2013 um 09:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 09:41
@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
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 09:46
Also mich verwundert die Frage schon sehr. 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 :

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

...
Gruß
Hansa
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 10:00
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.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 10:08
@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
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.003 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 10:16
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
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 11:33
Ganz genau, eine der wenigen bösen Stolperfallen !! Gute Anmerkung
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.592 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 11:44
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.
Sven Harazim
--
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:11 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