TcpLib
|
Als ich vor die Aufgabe gestellt wurde, eine Client-Server-Anwendung ohne Zuhilfename von Bibliotheken wie Boost oder Qt für "Windows" und "Linux" bauen zu müssen, blieb mir nur noch die Möglichkeit, auf Sockets wie Winsock zuzugreifen.
Die ersten Schritte waren frustrierend und schwierig für mich. Eine große Hilfe waren die Ausführungen und Erklärungen von Felix Opatz.
Netzwerkprogrammierung mit BSD-Sockets
und
Zotteljedis Tipps zur Socket-Programmierung
Ich kann auch Nutzern von TCP-Wrapperklassen die Dokumentationen von Felix Opatz zum lesen empfehlen um das Verständnis der Socket-Kommunikation zu vertiefen.
Damit bin ich schon beim Thema TCP-Wrapperklassen. Ich wollte das ganze TCP-Geraffel nicht alles im Kopf behalten müssen und dann bei nächster Gelegenheit, wenn mal wieder eine Client-Server-Anwendung zu entwickeln ansteht, alles nochmal durchzuprogrammieren. Ich entschied mich, mir genehme, wiederverwendbare Client- und Server-Basisklassen zu entwerfen.
Nun denn; hier sind sie (tcp::Client und tcp::Server).
Um die Handhabung einfach aber auch flexibel zu halten, sind einfache Ableitungen von der Client- und Serverklasse mit Überschreibung von einer bzw. zwei Methoden möglich (siehe MyTestClient und MyTestServer).
Weitere Methoden von Klassen, welche die Flexibilität erhöhen können, sind virtual und als solche beschrieben.
Anhand der beiden Beispielklassen MyTestServer und MyTestClient wird die Nutzung aufgezeigt.