Simple TCP / HTTP messenger server written in C++ using low-level Linux sockets.
• Two servers in one program.
• HTTP server on port 8080.
• Chat server on port 8081.
• Login only by username.
• Chat commands:
/help
/ip
/hello
/echo
/html
/chat <username>
/back
/sent_messages
/session_messages
/exit
• HTTP login page.
• HTTP menu page after successful login.
• HTTP chats page.
• HTTP personal dialog page:
/chat/username
• HTTP routes:
/
/menu
/hello
/about
/chat
/logout
• Web messages update without full page reload.
• User cannot login twice at the same time.
• 404 page for unknown routes.
• Docker (recommended).
• Or: Linux, g++, make.
Build:
docker build -t chat-server .Run:
docker run -p 8080:8080 -p 8081:8081 chat-servercd src && make && ../server- Chat server uses epoll event loop — single thread monitors all connections, new clients are dispatched to a ThreadPool.
- HTTP server uses a simple accept loop with ThreadPool.
src/
├── chat/
├── http/
├── shared/
├── storage/
└── web/
├── pages/
└── assets/
Open in browser:
http://127.0.0.1:8080/
Main pages:
/
/menu
/chat
/chat/username
Connect from terminal:
nc 127.0.0.1 8081Then enter only your username.
