To learn socket network programming skills, a lightweight web server was developed using C++ in Linux environment. The server employs thread pool, socket, epoll, and event handling (simulating Proactor) technologies, and uses finite state machine to parse HTTP requests. It can handle tens of thousands of concurrent connections and data exchange as tested with Webbench.