Programmierwettbewerb, Runde 2
vom 1. January 2009Da der erste Programmierwettbewerb so großen Andrang hatte und ich schon mehrfach angesprochen wurde, ob es denn nicht einen zweiten Teil geben wird, habe ich mir wieder eine kleine Programmieraufgabe ausgedacht. Ideal also, um die neuen Vorsätze fürs neue Jahr auf die Probe zu stellen und das Wochenende "sinnvoll" zu nutzen :-)
Die Aufgabe (ca. 2-4 Stunden Aufwand)
Es gilt, einen Chat-Client zu programmieren, der mit einem von mir gestellten Chat-Server kommunizieren kann. Die Programmiersprache ist frei wählbar, solange sie unter Linux, OSX und Windows interpretiert oder compiliert werden kann. Es dürfen alle eingebauten Features der gewählten Programmiersprache verwendet werden, jedoch keine externen "fertigen Lösungen". Eine Socket-Lib, GUI-Toolkit o.ä. ist natürlich erlaubt.
Der Chat-Client sollte eine Eingabemöglichkeit haben, um Befehle und Chatnachrichten an den Server zu schicken. Zudem sollte er einen Textbereich o.ä. besitzen, um Statusnachrichten und Chat-Nachrichten darzustellen. Eine sich aktualisierende Liste mit den aktuellen im Chat befindlichen Usern ist nicht notwendig, macht aber mehr her :-)
Bewertet werden: Features, Codedesign, Nutzung der Sprachfeatures und Usability.
Der Server
Der Chat-Server ist unter dem Host "aaron-mueller.de" mit dem Port "2009" erreichbar. Der Server kann mit Befehlen - ähnlich wie ein IRC-Server - gesteuert werden. Sendet der Client bspw. den Befehl "/quit" an den Server, trennt dieser die Verbindung zum Client. Weitere Befehle sind "/nick NeuerBenutzername" um den Benutzernamen zu ändern und "/users" um alle im Chat befindlichen User auszugeben. Alle Statusnachrichten, die vom Server kommen, haben einen *(Stern) am Anfang. Die Kommunikation läuft über PlainText-Nachrichten.
Am besten ist es, wenn man sich mit dem Server zuerst mit Telnet oder einem anderen Tool vertraut macht, und dann an die Programmierung geht.
Ziel
Jeder der am Sonntag den 11.01.2009 um 19:00 Uhr mit seinem eigenen Chat-Client in den Chat kommt und seinen Code per E-Mail an mail@aaron-mueller.de abgibt, hat die Aufgabe gemeistert. (Wer an dem Sonntag nicht kann, macht natürlich trotzdem mit :-) Der Gewinner erhält von mir eine Überraschung!
Ich freue mich über jeden Beitrag! Viel Erfolg!
Nachtrag: Ich habe noch ein paar kleinere Bugs im Server korrigiert. Danke an Marc und Florian fürs Testen und Bugs finden.
del.icio.us,
Da der erste Programmierwettbewerb so großen Andrang hatte und ich schon mehrfach angesprochen wurde, ob es denn nicht einen zweiten Teil geben wird, habe ich mir wieder eine kleine Programmieraufgabe ausgedacht. Ideal also, um die neuen Vorsätze fürs
Kommentare
Beim nächsten Wettbewerb bin ich aber sicher wieder am Start.
Paar kurze Anmerkungen: Evtl. wäre es nicht schlecht wenn die motd und das User-Listing vom Rest abgegrenzt wird. Zudem kann man sein Nick in alles umbenennen. (Könnte spätestens zum Problem werden wenn der Nick mit * beginnt oder wenn es schon ein User mit dem Namen gibt (dann bekommt nur eine Connection die Nachrichten))
Und was mich noch interessieren würde: Muss die Lösung auf Linux, Unix UND Windows laufen? Weil du oben geschrieben hast es soll darauf interpretiert und compiliert werden.
Bin ich dabei, hoffe ich packe es zeitlich. :)