Breaking

Monday, 10 April 2023

speed test

Internet Speed Test

Internet Speed Test

Click the button below to test your internet speed:

import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Arrays; public class SpeedTest { private static final int TIMEOUT_MS = 10000; // 10 seconds timeout private static final int BUFFER_SIZE = 4096; // 4KB buffer size public static void main(String[] args) { try { long startTime = System.currentTimeMillis(); testDownloadSpeed(); long downloadTime = System.currentTimeMillis() - startTime; System.out.println("Download speed: " + calculateSpeed(BUFFER_SIZE, downloadTime) + " Mbps"); startTime = System.currentTimeMillis(); testUploadSpeed(); long uploadTime = System.currentTimeMillis() - startTime; System.out.println("Upload speed: " + calculateSpeed(BUFFER_SIZE, uploadTime) + " Mbps"); } catch (IOException e) { e.printStackTrace(); } } private static double calculateSpeed(int bufferSize, long timeMs) { double bytesPerSecond = ((double) bufferSize / timeMs) * 1000; return bytesPerSecond / 1_000_000; // Convert to Mbps } private static void testDownloadSpeed() throws IOException { byte[] buffer = new byte[BUFFER_SIZE]; Socket socket = new Socket(); socket.connect(new InetSocketAddress("speedtest.net", 80), TIMEOUT_MS); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream(); // Send HTTP GET request String request = "GET /speedtest/random250x250.jpg HTTP/1.1\r\n" + "Host: speedtest.net\r\n" + "User-Agent: Java/1.8.0\r\n" + "Connection: close\r\n\r\n"; out.write(request.getBytes()); out.flush(); // Read response and discard headers int bytesRead; boolean foundEndOfHeaders = false; while ((bytesRead = in.read(buffer)) != -1) { for (int i = 0; i < bytesRead; i++) { if (i > 3 && buffer[i] == '\n' && buffer[i - 1] == '\r' && buffer[i - 2] == '\n' && buffer[i - 3] == '\r') { foundEndOfHeaders = true; break; } } if (foundEndOfHeaders) { break; } } // Read data until end of stream long totalBytesRead = 0; while ((bytesRead = in.read(buffer)) != -1) { totalBytesRead += bytesRead; } in.close(); out.close(); socket.close(); } private static void testUploadSpeed() throws IOException { byte[] buffer = new byte[BUFFER_SIZE]; Socket socket = new Socket(); socket.connect(new InetSocketAddress("speedtest.net", 8080), TIMEOUT_MS); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream(); // Send HTTP POST request String request = "POST /speedtest/upload.php HTTP/1.1\r\n" + "Host: speedtest.net\r\n" + "User-Agent: Java/1.8.0\r\n" + "Content-Length: " + BUFFER_SIZE + "\r\n" + "Connection: close\r\n\r\n"; out.write(request.getBytes()); // Write data to socket Arrays.fill(buffer, (byte) 'A'); for (int i = 0; i < BUFFER_SIZE; i

No comments:

Post a Comment