package perf; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.Socket; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; class TCPPerfClient { public static void main(String argv[]) throws Exception { String hostname = ""; int tcpPort = 36039; DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); //System.out.println("Bitte geben Sie die Server-Adresse ein: "); //hostname = inFromUser.readLine(); hostname = "127.0.0.1"; while (true ) { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Bitte geben Sie die Anzahl zu übertragender Megabytes ein: "); Long number = new Long(inFromUser.readLine()); //Long number = (long)1; Socket clientSocket = new Socket(hostname, tcpPort); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); long timestampStart = System.currentTimeMillis(); System.out.println("Zeit vor Versand = " + timestampStart + " ms, " + df.format(new Date(timestampStart))); outToServer.writeBytes(number.toString() + "\n"); if (number == 0) { break; } char[] buffer = new char[1024 * 1024]; long totalBytesReceived = 0; int charsRead = inFromServer.read(buffer); while (charsRead != -1) { totalBytesReceived += charsRead; charsRead = inFromServer.read(buffer); } long timestampEnd = System.currentTimeMillis(); System.out.println("Zeit nach Empfang = " + timestampEnd + " ms, " + df.format(new Date(timestampEnd))); long duration = timestampEnd - timestampStart; System.out.println("Delay = " + duration + " ms"); double seconds = (duration / 1000.0); double throughput = (totalBytesReceived / seconds); System.out.println("Rate = " + (long)throughput + " B/s"); clientSocket.close(); } } }