Autor Beitrag
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Do 13.07.06 18:56 
Hi
Also ich hab vor einen Chat zu programmieren.
Dabei will ich nichts falsch machen denn er soll richtig gut werden. :D
Hab mir also das Chat-Protokoll-Tutorial von Narses durchgelesen.
Der Chat dort arbeitet mit den TSockets.
Darum hab ich ihn zu den Indys umgeschrieben, weil die ja besser sein sollen.
Das hab ich soweit geschafft.
Doch jetzt ist mir der CommandHandler der Indys aufgefallen.
Scheinbar wird mit ihm das Protokoll überflüssig.
Jetzt steh ich vor der Frage was besser ist.
Das eigene Protokoll oder der Indy CommandHandler?
Ich kann mich nicht entscheiden. :(

MfG, Coder
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 13.07.06 19:47 
Moin!

user profile iconCoder hat folgendes geschrieben:
Der Chat dort arbeitet mit den TSockets. Darum hab ich ihn zu den Indys umgeschrieben, weil die ja besser sein sollen.

Zunächstmal: ich habe noch keinen Chat gesehen, der auf die Indies angewiesen wesen wäre... :D Mir scheint auch eher, du hörst da lieber auf andere Meinungen ("sollen besser sein"), anstatt dir eigene Erfahrungen zu verschaffen. Hast du denn schon "schlechte Erfahrungen" mit den Sockets gemacht? Oder läuft immer alles gut mit den Indies? ;)

Meine eigenen Erfahrungen: die Sockets haben ihre Ecken und Kanten, sind aber wenigstens in allen Delphi-Versionen gleich; gerade für Anfänger sind die Sockets ausgezeichnet geeignet, weil nur die wirklich nötigen Funktionen enthalten sind. Was Performance angeht hat nur der TServerSocket einen (kleinen) Nachteil gegenüber dem IdTcpServer, weil die Ereignisse (standardmäßig; es geht auch anders) über den Hauptthread synchronisiert werden, was aber in keiner mir bekannten Anwendung jemals zu einem entscheidenden Nadelöhr geworden wäre. Bei den Indies gibt es dagegen große Versionsprobleme und Anfängerschwierigkeiten, weil die Mächtigkeit der Funktionen mehr verwirrt, als nützt. Dazu kommt dann noch das Multithreading, was gerade zusammen mit der VCL (die ja nicht thread-save ist!) häufig einem Anfänger das Genick bricht.

Mein Fazit deshalb: probier´s doch einfach selbst aus und mach dir ein eigenes Bild davon. Dann kannst du auch angemessen reagieren. ;)

user profile iconCoder hat folgendes geschrieben:
Doch jetzt ist mir der CommandHandler der Indys aufgefallen.
Scheinbar wird mit ihm das Protokoll überflüssig.

Vorsicht Falle, bitte nicht zwei Begriffe durcheinander bringen: Ein Protokoll ist eine Art und Weise, wie man Kommunikation abwickelt bzw. steuert. Das hat zunächst mal nix mit dem Code zu tun, der benutzt wird, um die Daten zu verarbeiten, denn der CommandHandler der Indies ist nur eine Abbildung von bei Protokollen benötigten Funktionalitäten, aber nicht das Protokoll selbst!

Du wirst bei deinem Chat nicht ohne ein Protokoll auskommen, wenn du mehr als nur den reinen Text versenden willst (zumindest soviel sollte dir mein Tutorial hoffentlich vermittelt haben).

Ob du dann meinen Vorschlag für einen Protokoll-Parser/Prozessor oder den CommandHandler der Indies nimmst, das ist "Geschmacksache" bzw. hängt davon ab, was du tun willst.

user profile iconCoder hat folgendes geschrieben:
Jetzt steh ich vor der Frage was besser ist.
Das eigene Protokoll oder der Indy CommandHandler?

Dir sollte jetzt klar sein, dass die Frage nicht korrekt gestellt ist, weil du ohne das Protokoll nicht auskommen wirst. Womit du das Protokoll umsetzt (also welche Funktionen die Daten verarbeiten), dass ist prinzipiell egal.

Nimm das, womit du besser klar kommst, würde ich sagen. ;)

cu
Narses

PS: Hmm... :? ist mein Tut wirklich so undurchsichtig (gross) geworden, dass dieser Sachverhalt "was ist ein Protokoll" nicht klar genug rüber kommt... :?: :gruebel:

PPS: Hab mal über den CommandHandler der Indies geschaut: sieht so aus, als sei das Ding für kommandozeilenorientierte Kommunikation/Protokolle ausgelegt. Wird also nur begrenzt geeignet sein, wenn man nicht entsprechend viel Aufwand treiben will, um z.B. Binärdaten zu transportieren. :|

_________________
There are 10 types of people - those who understand binary and those who don´t.
Coder Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Do 13.07.06 23:57 
Hi

Jetzt hast du mir schon wieder geholfen.
Sorry das ich dir so auf die Nerven gehe. :(

Der Vorteil der Indies ist eben dieses Multithreading.
Das will ich mal unbedingt ausprobieren. :)
Ich hab den Chat jetzt mit den Indys zum laufen gebracht und er funktioniert auch.
Das heist ja ich hab die Hürden überwunden?
Synchronisieren tu ich auch ordentlich. (glaub ich)
Und das erweitern des Protokolls ist ja jetzt kein Problem mehr. :D

Zitat:
PS: Hmm... :? ist mein Tut wirklich so undurchsichtig (gross) geworden, dass dieser Sachverhalt "was ist ein Protokoll" nicht klar genug rüber kommt... :?: :gruebel:

Es lag eher daran das ich keine Ahnung über den CommandHandler hatte.
Dein Tutorial ist spitze. :D

Werd den CommandHandler jetzt mal genau unter die Lupe nehmen.

MfG, Coder

PS: Für Leute die es interessiert habe ich den Chat aus Narses Tutorial in der Indy Version rangehängt.
Einloggen, um Attachments anzusehen!