After Jim Gray's video, I thought I would pull my blocking queue implementation out and experiment a little.  Here is my bounded blocking queue that can handle many consumers and many producers.  Also included is a simple server example using multiple listeners (two threads per listener) and one server thread servicing the input queue.  This design could be used to service N number of clients. It is geared toward UDP or TCP request/reply (not stateful TCP connections beyond a single request/reply pair.)  Feel free to post comments or your own designs.  Cheers!

Note: Built with Framework 1.1.  The complete c# project is in the zip.  Also, to keep things simple so as not to complicate the general idea, we don't use actual network/socket connections, but just abstract the idea.

-- William Stacey [MVP]