You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.0 KiB

5 years ago
  1. package perf;
  2. import java.io.BufferedReader;
  3. import java.io.DataOutputStream;
  4. import java.io.InputStreamReader;
  5. import java.net.Socket;
  6. import java.text.DateFormat;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. class TCPPerfClient {
  10. public static void main(String argv[]) throws Exception {
  11. String hostname = "";
  12. int tcpPort = 36039;
  13. DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
  14. //System.out.println("Bitte geben Sie die Server-Adresse ein: ");
  15. //hostname = inFromUser.readLine();
  16. hostname = "127.0.0.1";
  17. while (true ) {
  18. BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
  19. System.out.print("Bitte geben Sie die Anzahl zu �bertragender Megabytes ein: ");
  20. Long number = new Long(inFromUser.readLine());
  21. //Long number = (long)1;
  22. Socket clientSocket = new Socket(hostname, tcpPort);
  23. DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  24. BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  25. long timestampStart = System.currentTimeMillis();
  26. System.out.println("Zeit vor Versand = " + timestampStart + " ms, " + df.format(new Date(timestampStart)));
  27. outToServer.writeBytes(number.toString() + "\n");
  28. if (number == 0) {
  29. break;
  30. }
  31. char[] buffer = new char[1024 * 1024];
  32. long totalBytesReceived = 0;
  33. int charsRead = inFromServer.read(buffer);
  34. while (charsRead != -1)
  35. {
  36. totalBytesReceived += charsRead;
  37. charsRead = inFromServer.read(buffer);
  38. }
  39. long timestampEnd = System.currentTimeMillis();
  40. System.out.println("Zeit nach Empfang = " + timestampEnd + " ms, " + df.format(new Date(timestampEnd)));
  41. long duration = timestampEnd - timestampStart;
  42. System.out.println("Delay = " + duration + " ms");
  43. double seconds = (duration / 1000.0);
  44. double throughput = (totalBytesReceived / seconds);
  45. System.out.println("Rate = " + (long)throughput + " B/s");
  46. clientSocket.close();
  47. }
  48. }
  49. }