Networking-related utility classes. Highlights:

- {@link edu.emory.mathcs.util.net.ConnectionPool} manages a pool of socket connections to a single network endpoint. Pooling enables reusing connections for multiple, unrelated data transfers, and it can be used to implement certain connection-based protocols like HTTP 1.1. Additionally, pooling can aid in controlling network load - limiting the maximum pool size causes excessive connection requests to be enqueued at the client side.
- {@link edu.emory.mathcs.util.net.SocketWrapper} and {@link edu.emory.mathcs.util.net.ServerSocketWrapper} allow to add functionality over existing network connections, so that the decorator is still perceived as a socket. It is very useful in cases when it is impossible to write decorator as a subclass, for instance when the base socket is created by an independent library. Practical application is supplied by {@link edu.emory.mathcs.util.net.compressed.CompressedSocketWrapper} and {@link edu.emory.mathcs.util.net.compressed.CompressedServerSocketWrapper} classes, which allow to enable compression on top of existing socket connections, and can readily serve as an RMI transport.
- In-process socket abstraction: see {@link edu.emory.mathcs.util.net.inproc}