From 803080c8d2ba69162c5d94644923a31e59191303 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Tue, 19 Nov 2024 11:16:49 -0500 Subject: ConcurrentDatagramSocket --- .../java/derms/net/ConcurrentDatagramSocket.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/derms/net/ConcurrentDatagramSocket.java (limited to 'src') diff --git a/src/main/java/derms/net/ConcurrentDatagramSocket.java b/src/main/java/derms/net/ConcurrentDatagramSocket.java new file mode 100644 index 0000000..ee5dbb2 --- /dev/null +++ b/src/main/java/derms/net/ConcurrentDatagramSocket.java @@ -0,0 +1,44 @@ +package derms.net; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.SocketException; +import java.time.Duration; + +public class ConcurrentDatagramSocket { + private final DatagramSocket sock; + + public ConcurrentDatagramSocket() throws IOException { + this.sock = new DatagramSocket(); + } + + public synchronized void close() { + sock.close(); + } + + public synchronized void connect(InetAddress address, int port) { + sock.connect(address, port); + } + + public synchronized InetAddress getLocalAddress() { + return sock.getLocalAddress(); + } + + public synchronized int getLocalPort() { + return sock.getLocalPort(); + } + + public synchronized void receive(DatagramPacket p) throws IOException { + sock.receive(p); + } + + public synchronized void send(DatagramPacket p) throws IOException { + sock.send(p); + } + + public synchronized void setSoTimeout(Duration timeout) throws SocketException { + sock.setSoTimeout((int) timeout.toMillis()); + } +} -- cgit v1.2.3