www.AlgorithMan.de
Where theory comes alive
17 KiB
Eine Klasse, die einen Socket für Clients verwaltet. Das Interface ist sehr simpel, wie man an den anderen Programmen hier sehen kann (an denen ich insgesamt nichtmal eine Woche gearbeitet habe). Besonders hervorzuheben ist die Möglichkeit, den Socket aktiv zu machen - d.h. dass er Callback-Funktionen aufrufen kann, sobald Daten eintreffen. Besonders schön ist dabei, dass man der Callback-Funktion eine andere Funktion vorschalten kann (indem man die Klasse ableitet und in der abgeleiteten Klasse die Methode
InternalOnRecieve
überschreibt) wodurch man protokoll-spezifische Nachrichten abfangen kann (wie die PING-PONG Nachrichten im IRC Netz)
51 KiB
Ein Client für Internet Relay Chat (IRC). Das ganze ist sauber in eine Klasse gekapselt, wodurch man die Funktionalität sehr einfach in beliebige Programme einbauen kann. Es ist sehr einfach, über die Interfaces und Callback-Funktionen Nachrichten zu verschicken und zu empfangen, wie man am sehr kurzen Hauptprogramm sehen kann. Die PINGs werden übrigens automatisch beantwortet.
Sehr interessant ist die Möglichkeit, das Hauptprogramm über named pipes an die Standard-Ströme eines anderen Programms anzubinden. Zum Beispiel könnte man damit dieses Programm das beliebte MoxQuizz spielen lassen.
60 KiB
Ein Programm, mit dem man E-Mails über SMTP Server verschicken kann. Das ganze ist auch wieder sauber in eine Klasse gekapselt, wodurch man die Funktionalität wieder sehr einfach in beliebige Programme einbauen kann. Die Klasse unterstützt mehrere Empfänger, Blindkopien und Dateianhänge. Zur Authentifizierungs wird derzeit nur das (unsichere) LOGIN unterstützt. CRAM-MD5 wäre besser.
4 KiB
Eine Klasse mit der einfache, multithreading-basierte TCP-Server implementiert werden können. Ein einfacher Beispiel-Chat-Server ist enthalten, der lediglich 51 Zeilen lang ist.
25 KiB
Ein telnet Client. Man beachte wie wenig code dafür nur nötig ist (7 Zeilen). Telnet ist zwar ein sehr primitives System, die Clients sind aber durchaus brauchbar um die Schnittstellen von anderen Protokollen kennenzulernen, indem man sich einfach mit einem Telnet Client zu einem Server verbindet und die Messages schickt, wie sie in den verschiedenen RFCs spezifiziert sind. Damit habe ich z. B. mal manuell eine E-Mail verschickt und eine Datei heruntergeladen. Das ist zwar extrem umständlich, aber wie gesagt lernt man dabei die Protokolle kennen.