diff --git a/VAR-UDP/src/var/sockets/udp/time/TimeClient.java b/VAR-UDP/src/var/sockets/udp/time/TimeClient.java index ab80f45..585333a 100644 --- a/VAR-UDP/src/var/sockets/udp/time/TimeClient.java +++ b/VAR-UDP/src/var/sockets/udp/time/TimeClient.java @@ -1,8 +1,35 @@ package var.sockets.udp.time; -public class TimeClient { +import java.net.*; - public static void main(String[] args) { - // TODO Auto-generated method stub - } +public class TimeClient { + private static final String HOST = "localhost"; + private static final int PORT = 4711; + private static final int BUFSIZE = 512; + private static final int TIMEOUT = 2000; + + public static void main(String[] args) { + System.out.println("Sending empty Datagram..."); + byte[] data = {}; + + try (DatagramSocket socket = new DatagramSocket()) { + socket.setSoTimeout(TIMEOUT); + + InetAddress iaddr = InetAddress.getByName(HOST); + DatagramPacket packetOut = new DatagramPacket(data, 0, iaddr, PORT); + socket.send(packetOut); + + DatagramPacket packetIn = new DatagramPacket(new byte[BUFSIZE], BUFSIZE); + socket.receive(packetIn); + String received = new String(packetIn.getData(), 0, packetIn.getLength()); + System.out.println("Received: " + received); + + } + catch (SocketTimeoutException e) { + System.err.println("Timeout: " + e.getMessage()); + } + catch (Exception e) { + System.err.println(e); + } + } } diff --git a/VAR-UDP/src/var/sockets/udp/time/TimeServer.java b/VAR-UDP/src/var/sockets/udp/time/TimeServer.java index 4616ff2..77c78d1 100644 --- a/VAR-UDP/src/var/sockets/udp/time/TimeServer.java +++ b/VAR-UDP/src/var/sockets/udp/time/TimeServer.java @@ -1,8 +1,40 @@ package var.sockets.udp.time; -public class TimeServer { +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.util.Date; - public static void main(String[] args) { - // TODO Auto-generated method stub - } +public class TimeServer { + private static final int PORT = 4711; + private static final int BUFSIZE = 512; + + public static void main(String[] args) { + try (DatagramSocket socket = new DatagramSocket(PORT)) { + DatagramPacket packetIn = new DatagramPacket(new byte[BUFSIZE], BUFSIZE); + DatagramPacket packetOut = new DatagramPacket(new byte[BUFSIZE], BUFSIZE); + + System.out.println("Time Server gestarted ..."); + + while (true) { + System.out.println("\nListening: "); + socket.receive(packetIn); + System.out.println( + "Received: " + packetIn.getLength() + " bytes: " + new String(packetIn.getData())); + + packetOut.setSocketAddress(packetIn.getSocketAddress()); + Date currentStamp = new Date(); + String currentStampString = currentStamp.toString(); + byte[] outData = currentStampString.getBytes(); + + packetOut.setData(outData); + packetOut.setLength(outData.length); + + socket.send(packetOut); + } + } + catch (IOException e) { + System.err.println(e); + } + } }