Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TServerSocket, TClientSocket und Indy (https://www.delphipraxis.net/61998-tserversocket-tclientsocket-und-indy.html)

reepo2k 29. Jan 2006 14:07


TServerSocket, TClientSocket und Indy
 
Hallo, ich wollte mal fragen, warum bei Delphi7 der Client- und der Serversocked nicht mehr standartmäßig installiert sind.
In der Readme steht:
Zitat:

Borland rät von der Verwendung von TServerSocket und TClientSocket aus der Unit ScktComp ab. Für Socket-Operationen sollten Sie die Indy-Komponenten verwenden. TServerSocket und TClientSocket werden standardmäßig nicht mehr in der Komponentenpalette installiert. Falls Sie diese Komponenten benötigen, können Sie das Entwurfszeit-Package dclsockets70.bpl installieren, das Sie in Ihrem bin-Verzeichnis finden. Für die Weitergabe zusammen mit den erforderlichen Laufzeit-Packages geben Sie rtl70.bpl und alle anderen erforderlichen Packages weiter.
Aber warum wird abgeraten TServerSockedtund TClientSocket zu verwenden?
Oder anders: Wo liegt der UNterschied zwischen TServerSocked, TClientSocked und den von Indy?


THX!



MfG: reepo2k

Amo 29. Jan 2006 14:37

Re: TServerSocked, TClientSocked und Indy
 
Also mich würde es auch interessieren warum man lieber die Indys benutzen sollte. Die Socket-komponenten scheinen doch auch gut zu sein und außerdem finde ich ClientSocket einfacher als IdTCPClient.
Vielleicht ist das so gemeint, dass man lieber die Indy für zB FTP benutzen sollte als alles mit den Sockets zu machen, aber ich weiß es selber nicht genau.

vlees91 29. Jan 2006 16:21

Re: TServerSocket, TClientSocket und Indy
 
ich habe noch nie etwas mit den indy hinbekommen
immer kamen fehler
und jetzt wo mir jemand ne anleitung zur installation gegeben hat kann man sie noch nicht einmal downloada...

konda 29. Jan 2006 17:49

Re: TServerSocket, TClientSocket und Indy
 
Hey danke für das Thema. Ich hatte Delphi5 und da war Clientsocket schon installiert, aber jetzt bei Delphi 2005 nicht. Durch deinen Beitrag hab ich jetzt auch bei Delphi 2005 ClientSocket. :thumb:

reepo2k 29. Jan 2006 18:05

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von konda
Hey danke für das Thema. Ich hatte Delphi5 und da war Clientsocket schon installiert, aber jetzt bei Delphi 2005 nicht. Durch deinen Beitrag hab ich jetzt auch bei Delphi 2005 ClientSocket. :thumb:

Jo, bitte sehr, hättest die Readme gelesen.... :P

Leider habe ich noch immer keine wirkliche Antwort auf meine Frage. :(
Aber vielleicht findet sich noch jemand, der mir helfen kann. :)

DGL-luke 29. Jan 2006 18:24

Re: TServerSocket, TClientSocket und Indy
 
TClientSocket und TServerSocket sind ganz einfach reine TCP-Sockets, mit denen du Daten rumschicken kannst.

Indy hat für fast jedes Protokoll eine eigene Kompo: UDP, FTP, IMAP, POP3, SMTP, NNTP, ICMP, FTP, HTTP...

Und das ganze ist dann natürlich ein wenig einfacher. wenn mans schafft. Mir sind die Indies immer noch ein Rätsel.

Amo 1. Feb 2006 13:07

Re: TServerSocket, TClientSocket und Indy
 
Ja, das sehe ich auch so. Ich fand aber zB die Indy-FTP-Kompo ziemlich einfach. Ich habe damit einen FTP Clienten problemlos coden können :). Nur die Indy-TCP-Kompo finde ich wirklich nicht einfach, sollte mich mal mehr damit beschhäftigen :?

retnyg 1. Feb 2006 16:24

Re: TServerSocket, TClientSocket und Indy
 
http://www.delphi-library.de/viewtop...2df429ea7d58a6

die indy's sind imho mist, auch wenn sie einfach zu programmieren sind

TKC 1. Feb 2006 16:46

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von retnyg
http://www.delphi-library.de/viewtopic.php?t=38626&highlight=tclientsocket&sid= 0d0f5970ff5838c1f72df429ea7d58a6

die indy's sind imho mist, auch wenn sie einfach zu programmieren sind

könntest du mir das mal näher erlären ... ich habe keine Probleme mit den indys ... gibt es denn kostenlose alternativen ?

Der_Unwissende 1. Feb 2006 16:56

Re: TServerSocket, TClientSocket und Indy
 
Hi,
ich muss auch sagen, dass ich die Indys bis jetzt eigentlich super fand. Es funktioniert alles so wie es soll.
Schlecht ist es natürlich, dass da nicht alle Versionen zu einander kompatibel bleiben und gleiches gilt natürlich auch insbesondere für Delphi. Ist natürlich immer schöner, wenn man mit neuer IDE alte Programme ohne Probleme weiterhin kompilieren kann (ohne Bibliotheken installieren zu müssen), aber es gibt ja eine einfache Möglichkeit dazu, also wo ist das Prob?

Gruß Der Unwissende

retnyg 1. Feb 2006 18:03

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von ACE-ppc
könntest du mir das mal näher erlären ... ich habe keine Probleme mit den indys ... gibt es denn kostenlose alternativen ?

die indys sind erstens in den versch. versionen untereinander nicht kompatibel, und 2. lösen sie bei jedem fehler eine exception aus, was das debuggen sehr erschwert. ausserdem sind sie meiner erfahrung nach nicht wirklich threadsafe.

Alternativen: Synapse, ICS

DataCool 3. Feb 2006 11:07

Re: TServerSocket, TClientSocket und Indy
 
Hi,

also ich muss jetzt mal die Indys in Schutz nehmen und
mich gleichzeitig an dieser Stelle für die grossartige Arbeit
des Indy-Teams bedanken !!!!!!

Ich habe schon diverse Projekte mit den Indys realisiert und
alle laufen super und einwandfrei.
Insbesondere mit den IdTcpClient und IdTcpServer habe ich sehr viel gemacht
und noch nie Probleme gehabt.

Ok, man muss dazu sagen, das ich unter Delphi 6 die Indy Version 9 verwende.
Die 10er mögen vielleicht an einigen Stellen noch etwas buggy seien, dazu kann
ich nichts sagen, hatte bis jetzt noch keine Zeit bestehende Projekte zu portieren.

Zu den Exceptions:
Eine Exception ist nicht zwingend ein Fehler !!!
Sondern ein Hinweis/Meldung !!!!

Und für den Falle des Falles das man manche Exception beim debuggen gar nicht sehen möchte,
kann man sich diese unter "Tools/Debugger-Optionen/Sprachexceptions" hinzufügen und bekommt Sie dann nicht mehr angezeigt.

Thread-Safe:
Die Indys sind THREADSAFE !!! Gerade der Server kapselt jede Client Connection in einem eigenen Thread !
Den Client-Komponenten sollte man am besten auch in eigene Threads packen, da bekommt man auch null Probleme mit den Blocking Sockets die Indys verwendet.

So wenn jetzt noch jemand Fragen hat, nur her damit *lol*
Ich kann allerdings nur mit Bsps. und Erklärungen zu den Indy 9er dienen.

Gruß Data

retnyg 3. Feb 2006 11:26

Re: TServerSocket, TClientSocket und Indy
 
ich hab mal mit idhttp nen downloadmanager mit 16 paralellen threads gebastelt.
nach spätestens 15 min ist das teil dann abgestürzt, weil die dauernden exceptions, die, wie du richtig sagst, nicht nur bei fehlern, sondern auch bei hinweisen verwendet werden, den stack durcheinandergewürfelt haben.

vielleicht wäre es doch gegangen wenn ich für jede mögliche exception ne eigene handlerroutine geschrieben hätte, aber dafür ist mir meine zeit zu schade. aber wie gesagt, sind alles rein subjektive impressionen.

DataCool 3. Feb 2006 12:06

Re: TServerSocket, TClientSocket und Indy
 
@retnyg:

Ich hoffe dann hasst Du zu jedem Thread ein eigenes IdHttp-Objekt erzeugt ?!

Gruß Data

retnyg 3. Feb 2006 15:57

Re: TServerSocket, TClientSocket und Indy
 
logo

SoGraDEs 6. Jun 2006 13:33

Re: TServerSocket, TClientSocket und Indy
 
Hi,
DataCool hat offensichtlich mehr Kenne von den Indys, als das bei mir und vielen anderen der Fall ist.
Ich habe bisher auch mit DELPHI 5 und den TServerSocked/TCliendSocked zur Datenübertragung (kleine Datenmengen) zwischen zwei Programmen gearbeitet.
Jetzt versuche ich mich mit 2006.
Mich würde die Umstellung auf IdTcpClient bzw. Server schon aus Neugierde interessieren.
Mir fehlen leider die Kenntnisse um die Indys anwenden zu können, deshalb wäre ich sehr dankbar für ein Beispiel, an dem ich mich in das Thema Indys reinwühlen kann.
Vielleicht kann mal einer ein Beispiel geben. Wäre schön.
Ob man nicht mehr mit TServerSocked/TCliendSocked arbeiten soll oder nicht, ist scheinbar auch noch strittig.
Viele Grüße SoGraDes

shmia 6. Jun 2006 14:09

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von reepo2k
Aber warum wird abgeraten TServerSocked tund TClientSocket zu verwenden?

Also ich habe mir die Unit ScktComp vor einiger Zeit zur Brust genommen und gleich einen gravierenden Mangel festgestellt:
Es wird nur TCP unterstützt. UDP und andere Protokolle bleiben aussen vor.

Für mich ein Grund diese Unit überhaupt nicht in Betracht zu ziehen obwohl mir das schlanke Design
am Anfang gut gefallen hat. (Mit einigen Änderungen im Sourcecode wären auch andere Protokolle möglich; keine Ahnung weshalb Borland das nicht schon getan hat)

SoGraDEs 6. Jun 2006 16:20

Re: TServerSocket, TClientSocket und Indy
 
Warum ist es ein gravierender Mangel, wenn nur TCP unterstützt wird ?
Wenn man nur einige Byte zwischen zwei Rechnern im Netzwerk austauschen will, so wie das bei mir der Fall ist, dann brauche ich keine Variation von Protokollen, dann brauche ich nur einen sauber funktionierenden Source.
Also ist doch die Frage :
Ist ScktComp eine fehlerfreie UNIT ?
Wird ScktComp auch noch von den nächsten DELPHI Versionen verwendet/unterstützt ?

Gibt auf diese Fragen eine Antwort ?
SoGraDes

shmia 6. Jun 2006 16:37

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von SoGraDEs
Warum ist es ein gravierender Mangel, wenn nur TCP unterstützt wird ?

Weil ein Netzwerk nur zu ~ 80% aus TCP besteht; es fehlen halt 20%.
Zitat:

Zitat von SoGraDEs
Ist ScktComp eine fehlerfreie UNIT ?

Ja.
Zitat:

Zitat von SoGraDEs
Wird ScktComp auch noch von den nächsten DELPHI Versionen verwendet/unterstützt ?

Das weiss nur Borland. Wenn du auf die .NET Schiene aufspringen möchtest/musst, gibt's im .NET Framework sicher bessere Klassen.

SoGraDEs 6. Jun 2006 20:18

Re: TServerSocket, TClientSocket und Indy
 
Shmia, danke für die klaren Aussagen.

Zitat:

Zitat von DataCool
Ich habe schon diverse Projekte mit den Indys realisiert und
alle laufen super und einwandfrei.
Insbesondere mit den IdTcpClient und IdTcpServer habe ich sehr viel gemacht
und noch nie Probleme gehabt.

Ich hoffe noch, dass DataCool oder ein anderer Wissender mal ein Beispiel mit INDY
geben kann, damit wir restlichen Unwissenden mal eine kleine Einstiegshilfe in die INDY-Lib bekommen.
Vielen Dank im Voraus
SoGraDes

DataCool 6. Jun 2006 20:21

Re: TServerSocket, TClientSocket und Indy
 
Hi,

für was hättet Ihr den gerne ein Bsp. ?
TCP Client und Server, der was machen soll ?

*Edit* Meine Beispiele wären wenn mit Delphi 6 und Indy9(also nicht 1:1 auf Indy10 portierbar */Edit*

Gruß Data

SoGraDEs 6. Jun 2006 21:13

Re: TServerSocket, TClientSocket und Indy
 
Ich arbeitete bisher mit TserverSocket/TclientSocket unter Delphi5.
Ich habe damit zwischen zwei Delphi-Programmen in meinem kleinen privatem Netzwerk einige Daten übertragen.
z.B.
Ich habe/werde haben eine SPS-Anwendung auf einer Beckhoff-Endklemme (Delphi.exe unter XP) laufen, die meine Hauselektrik steuert, Überwachungsfunktionen (Einbruch ) realisiert, Heizung und Lüftungsanlage steuert.
Ein anderer PC hat Zugriff auf Überwachungskameras.
Ein anderer PC steht in meinem Schlafzimmer, der Probleme, Einbruch, Feuer melden kann.
Ein anderer PC steht in meinem Büro, der mein Softwareentwicklungsplatz ist, der Master der Kommunikation ist, der Datenverwalter und .... ist.
Die Bilder(Überwachungskamera) und die Datensätze mit Temperaturgang, Feuchtegang und Heizkennlinien werden übers LAN auf einem Rechner gespeichert.
ABER
Die einzelnen Programme müssen sich mit einigen Integern, Floats und Boolean über bestimme Situationen informieren :
Alarm mit Parameter
Temperaturüber/unterschreitung
Zeitsynchronisation
Und...und ... und
Das kann ich mit dem alten TserverSocket/TclientSocket hinbringen, auch unter BDS2006
VCL unter WIN32. Das geht, das kann ich auch.
Ich würde aber gerne parallel auf den Zug der Zukunft aufspringen.
Also vielleicht die INDY10 einsetzen, und dann auch in Richtung .NET experimentieren.
Deshalb würde ich mich über einige Beispiele freuen, weil ich mit meinen Haus-Programmierung (neben meinem Beruf) schon ziemlich ausgelastet bin.
Müsste ich mir jedes Detail selbst erarbeiten, dann könnte ich INDY und die .NET-Zukunft wahrscheinlich nicht stemmen.
Ich nehme jedes Beispiel, weil ich ja erst mal lernen will.
Ich habe das auch so ausführlich geschrieben, falls jemand auch sein „Haus“ programmiert, könne man sich ja austauschen.

Speziell zu DataCool :
Wenn Du Beispiele in Delphi 6 und Indy9 hast, würde ich als meine erste Übung versuchen, diese Beispiel auf BDS2006 und INDY10 zu schaufeln. Vielleicht krieg ich’s ja hin.
Werde dann darüber berichten.
SoGraDes

retnyg 8. Jun 2006 14:21

Re: TServerSocket, TClientSocket und Indy
 
du willst von einer einfachen, fehlerfreien socket-komponente, die auf jedem delphi genau gleich funktioniert, auf eine komplexe, sich noch im Entwicklungsstadium (z.b. bei IDIRC sind noch einige Funktionen nicht implementiert) befindliche umsteigen, die bei jeder neuen version eigenschaften und methoden ihrer objekte durcheinanderwürfelt, und nennst das dann auch noch zukunftssicher ?

Biddeschön, dann nimm dir aber auch selber die Zeit, die Demos von indy zu testen - auf der Indy HP herunterzuladen.

SoGraDEs 8. Jun 2006 16:07

Re: TServerSocket, TClientSocket und Indy
 
Zitat:

Zitat von retnyg
...., und nennst das dann auch noch zukunftssicher ?

Da hast Du meinen Text nicht richtig gelesen. Ich habe nicht von Zukunftsicherheit geschrieben, sondern auf den Zug in die Zukunft aufsprinngen geschrieben.
Ich ( oder Wir) habe keine Vorstellung davon, wie lange die TserverSocket/TclientSocket noch in zukünftigen Delphi Versionen unterstützt werden. Ich denke, dass sie auch nicht unter .NET einsetzbar sind ( kann jemand diese Frage beantworten).
Ich würde nur gerne neben meinen aktuellen Tätigkeiten mit dem Krennenlernenen von INDY und auch von .NET beginnen.
Und Beispiele helfen halt dabei. Ich sterbe aber auch nicht, wenn ich keine Beispiele bekomme.

Zitat:

Zitat von retnyg
du willst von einer einfachen, fehlerfreien socket-komponente, die auf jedem delphi genau gleich funktioniert, auf eine komplexe, sich noch im Entwicklungsstadium ....

Ich will noch gar nicht umsteigen, ich bleibe vorerst bei meinem alten und bisher gut funktionierendem Zeugs.
Aber man darf doch auch was dazulernen. Schlauer, wissender zu werden ist doch nicht falsch ; oder ?
Viele posten hier nur wenn sie ein aktuelles Problem haben, und sind dann um schnelle Hilfe verlegen.
Manchmal ist es doch auch nützlich, wenn man mal "was wäre wenn" spielt und in Ruhe ohne Erfolgsdruck
experimentieren (lernen) kann.
Man hat dann auch Zeit, andere an Problemen und Erkenntnissen teilnehmen zu lassen, das belebt die Szene doch.
SoGraDes

DataCool 8. Jun 2006 16:23

Re: TServerSocket, TClientSocket und Indy
 
Hi,

zwei Bsps kann ich Dir ohne Aufwand schonmal nennen :

Dateien/Streams versenden via TCP mit Indy9

Email verschicken mit Indy9

Desweiteren findest Du(meiner Meinung nach recht gute Bsps) direkt auf der Indy Seite zum download, für Indy 9 und 10.

Gruß Data

P.s.: Wenn Du ein spezielles Demo wünscht was nicht besonders aufwendig ist, must Du sagen was Dich interessiert.

SoGraDEs 8. Jun 2006 16:44

Re: TServerSocket, TClientSocket und Indy
 
Danke für die Beispiele.
Zitat:

Zitat von DataCool
Desweiteren findest Du(meiner Meinung nach recht gute Bsps) direkt auf der Indy Seite zum download, für Indy 9 und 10.

Da habe ich schon mal reingeschaut, aber doch noch (zu) viel nicht geschnallt. Ich werde mich mit Data's Beispielen und den INDY-Beispielen jetzt etwas plagen.
Seit sicher, ich werde Fragen posten.
Mit dieser Drohung noch einen schönen Tag
SoGraDes


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 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