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.

35 lines
1.3 KiB

  1. package verteiltesysteme.socket.timecounter;
  2. import java.net.DatagramPacket;
  3. import java.net.DatagramSocket;
  4. import java.net.InetAddress;
  5. import java.text.DateFormat;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. class UDPTimeCounterServer {
  9. private static long counter = 0;
  10. public static void main(String args[]) throws Exception {
  11. int udpPort = 36038;
  12. @SuppressWarnings("resource")
  13. DatagramSocket serverSocket = new DatagramSocket(udpPort);
  14. byte[] receiveData = new byte[1024];
  15. byte[] sendData = new byte[1024];
  16. DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
  17. while (true) {
  18. DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  19. serverSocket.receive(receivePacket);
  20. long number = new Long(new String(receivePacket.getData(), 0, receivePacket.getLength()));
  21. InetAddress IPAddress = receivePacket.getAddress();
  22. int clientSrcPort = receivePacket.getPort();
  23. counter += number;
  24. sendData = (Long.toString(counter) + " Zeit: " + System.currentTimeMillis() + " " + df.format(new Date(System.currentTimeMillis()))).getBytes();
  25. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, clientSrcPort);
  26. serverSocket.send(sendPacket);
  27. }
  28. }
  29. }