Protokoll für Chat
-
Hi!
Ich wollte mal einen Lan Chat erstellen. Nur weiß ich nicht, wie ich ein Protokoll machen kann!
-
Zuviel Inspiration hier im Forum *g*
Protokoll benötigst du meistens nur in einer sehr sehr vereinfachten Form. Im Prinzip hast du ein paar Befehle und zu denen jeweils einen String der als Parameter des Befehls zählt.
Damit kannst du dir schonmal deine Struktur aufbauen - fixe Größe.
Damit du auch längere Messages verschicken kannst als die fixe Größe des Strings, kannst ja MSG_START, MSG_MSG und M_END als Befehle einführen.
Variable Größen sind meistens schon viel komplizierter als man bei einem einfachen LAN-Chat haben will.
Dann vielleicht noch ein WHO, QUIT und HELP.
Dann noch ein paar Sockets erstellen fertig *g*
MfG SideWinder
-
dafür kannst du dir z.b. ein enum mit befehlen anlegen
beim verschicken konvertierst du das enum in einen string und setzt einen punkt dahinter
beim empfangen konvertiertst dus mit atol wieder zurück (atol parst den string nur bis zum punkt und hört dann auf)
dann noch ne hübsche switch anweisung für die erhaltene zahl und fertignur ne anregung
-
Wie wärs statt Enum-Reinterpret-Konvertierungen mit einer Struktur die einen unsigned char == Befehl und einen char[127] == String enthält?
den char[127] erweiterst du dann so weit, wie du denkst, dass es für dich sinnvoll ist und du so gut wie nie sinnloses überträgst.
Wenn die Datenpakete sehr sehr unterschiedlich sind, dann entweder über mehrere Befehle wie eben gesagt MSG_START, MSG_MSG und MSG_END oder gleich über Variable Größen.
MfG SideWinder
-
ich würde das Packet einfach so aufbauen
Befehl:u16<Länge:u32>Zusatzdaten:*
Dann bekommt jeder Befehl eine Nummer zB. MSG=1 PRIVMSG=2 QUIT=3 JOIN=4 WHO=5 HELP=6 und dann kommt die Länge der Zusatzinformationen und dann die Zusatzinformationen