An asynchronous server handles client operations without synchronously blocking a thread while waiting for network or disk activity. It suits mostly I/O-bound work, such as serving static files or making database queries. section 6.1
A socket accepts connections asynchronously, while each request uses asynchronous file reads and sends. Compared with one thread per request, this reduces thread growth under load, although asynchronous handling is not automatically faster at light loads.
Static-file server
A server listens on port 7777, accepts connections with AcceptAsync, reads somefile.bin with ReadAsync, and sends each buffer asynchronously. At 200–300 connections, the asynchronous version records no failures while the threaded version records many.
