NetGauge is a Java-based internet speed testing tool featuring client and server components. It measures download speed, upload speed, and ping (latency) using a custom-built HTTP server and native system commands. The entire tool is implemented using core Java with no external libraries.
- Download speed test over HTTP
- Upload speed test using streamed data
- Ping test using the system's native
pingcommand - Custom lightweight HTTP server
- Nanosecond-level timing for accurate Mbps calculation
- Plain, dependency-free Java code
Custom_server: A basic HTTP server usingServerSocket, handling:GET /download: Streams binary data to test download speedPOST /upload: Accepts binary data to test upload speed
DownloadHandler.java: Downloads a fixed-size payload from the server and calculates download speedUploadHandler.java: Uploads a fixed-size payload to the server and calculates upload speedPingTester.java: Runs the system'spingcommand (e.g.,ping -c 4 google.com) usingProcessBuilder, capturing real ICMP ping results
Before running any test, you must start the custom HTTP server included in this repository.
The server handles both /download and /upload requests and must be active for the client tests to function properly.