Python Multi-Client Socket Server

Job ID: 40493270

Budget: ₹50,000 – ₹100,000 INR

I need a robust socket-based system written in Python that can manage dozens (eventually hundreds) of simultaneous client connections. Each client will push mixed data (text and binary) to the server every few minutes. The server must:

• Accept and keep persistent TCP connections, identify each client by its IP/port, and store that mapping in memory for quick callback.
• Route outbound messages so I can speak to any individual client on demand—think targeted commands, acknowledgements, or config updates.
• Insert every payload into a customer-specific MySQL schema (one database per customer, tables you define).
• Create a rolling log file per client capturing connection events, payload metadata, and outbound commands.

I’m fine with your preferred concurrency model—asyncio, threading, or a high-performance framework like Twisted—as long as it stays pure Python. Clean separation between networking, persistence, and logging layers is important because I’ll be extending this codebase later.

Deliverables
1. Python server application with inline docs and unit-test stubs
2. Lightweight sample client demonstrating connection, periodic data push, and command reception
3. SQL schema plus migration script for customer databases
4. Configurable logging module producing per-client log files
5. README covering deployment on Ubuntu 22.04, systemd service setup, and basic hardening tips (firewall rules, TLS termination if offered)

Acceptance
The server must comfortably handle at least 100 concurrent clients on a 2-CPU cloud VM, with <200 ms round-trip latency for a 512-byte command, and no data loss across a 24-hour soak test.

If this sounds like your kind of build, let’s talk architecture choices and timelines.

Note : Currently we have an windows Server. Same platform development and enhancement needed