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.

52 lines
1.9 KiB

  1. package verteiltesysteme.socket.timecounter;
  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;
  7. class UDPTimeCounterClientPing {
  8. public static void main(String args[]) throws Exception {
  9. String hostname = "";
  10. int udpPort = 36038;
  11. BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
  12. DatagramSocket clientSocket = new DatagramSocket();
  13. byte[] sendData = new byte[1024];
  14. byte[] receiveData = new byte[1024];
  15. System.out.println("Bitte geben Sie die Server-Adresse ein: ");
  16. hostname = inFromUser.readLine();
  17. InetAddress IPAddress = InetAddress.getByName(hostname);
  18. System.out.println("Bitte geben Sie die Anzahl gew�nschter Pings ein: ");
  19. Long pingCount = new Long(inFromUser.readLine());
  20. Long number = new Long(1);
  21. sendData = number.toString().getBytes();
  22. DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  23. long average = 0;
  24. for (long i = 0; i < pingCount; i++)
  25. {
  26. long timestampStart = System.currentTimeMillis();
  27. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, udpPort);
  28. clientSocket.send(sendPacket);
  29. receivePacket = new DatagramPacket(receiveData, receiveData.length);
  30. clientSocket.receive(receivePacket);
  31. long timestampEnd = System.currentTimeMillis();
  32. long delay = timestampEnd - timestampStart;
  33. average += delay;
  34. System.out.println("Delay = " + delay + " ms");
  35. Thread.sleep(1000);
  36. }
  37. System.out.println("Durchschnitt: " + (average / (float)pingCount) + " ms");
  38. System.out.println(System.lineSeparator());
  39. String result = new String(receivePacket.getData());
  40. System.out.println("Ausgabe vom Server:" + System.lineSeparator() + result);
  41. System.out.println(System.lineSeparator());
  42. clientSocket.close();
  43. }
  44. }