The stdnet project is intended to provide a framework for the development of software using advanced programming techniques and may be used in the education of students in the development of advanced software.
Advanced programming techniques includes but is not limited to such things as:
- client/server software;
- multithreaded applications and mutual exclusion;
- interprocess communication;
- communications protocols (protocol stacks);
- queuing;
- event-driven handling of input/output.
This is facilitated through a set of simple yet powerful C++ classes that make use of templating, polymorphism and inheritance.
This framework is not intended to lock the developer into any particular platform, class hierarchy nor architecture as it is intended to be portable and simple. The only constraint placed upon the developer is the use of the C++ language.
stdnet uses its own (C++) namespace to avoid interfering with other class hierarchies.
Using stdnet does not force the developer to use every stdnet header file or class as inter-class dependencies have been avoided where possible. It would be possible for a developer to use the threading and mutex classes only and ignore the rest of stdnet for instance.
