Operation
To understand how the Essential Networking Module works, we can divide its classes informally into two categories: network concepts, and network streams.
Classes in the network concepts category encapsulate basic network abstractions. For example, class RWSocket encapsulates a traditional network socket; class RWInetAddr encapsulates a complete Internet address. Classes like these, implemented on top of the networking capabilities of your operating system, provide an object-oriented API for low-level network access, and give you complete control over individual socket attributes and behavior. Many of these classes and methods are similar to types and functions found in the APIs of operating system sockets.
Classes in the network streams category make it possible to use the C++ iostreams facility reliably over network connections. Classes such as RWPortal, RWSocketPortal, and RWPortalStreambuf allow you to stream data over the network using familiar iostreams classes. Combine network streams classes with the Essential Tools Module virtual streams and you can stream objects in compact form. Combine network streams classes with the XML Streams Module classes and you can stream XML representations. In short, the Essential Networking Module lets you treat the network as a stream.