Added basic server structure

main
Victor Hans-Georg Waitz 2025-10-15 18:46:04 +02:00
parent 376750b8d2
commit 84bdcbc897
1 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,57 @@
package vs;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Server {
private static final int BUFFSIZE = 512;
private static final ExecutorService executor = Executors.newFixedThreadPool(2);
public interface PacketHandler {
void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName);
}
public static void main(String[] args) {
startSocket(new DiscoveryHandler(), 8888, "Discovery Service");
startSocket(new SyslogHandler(), 8887, "Logging Service"); //? Port geraten idk
}
private static void startSocket(PacketHandler handler, int port, String serviceName) {
executor.execute(() -> {
try (DatagramSocket socket = new DatagramSocket(port)) {
System.out.println(serviceName + " listening on port " + port);
byte[] buffer = new byte[BUFFSIZE]; //? Maybe andere Größe
while (true) {
DatagramPacket packetIn = new DatagramPacket(buffer, BUFFSIZE); //? Nicht sicher ob die Arguments richtig sind
socket.receive(packetIn);
handler.handlePacket(socket, packetIn, serviceName);
}
} catch (IOException e) {
//? Maybe besseres Error handling
System.err.println(serviceName + " error: " + e.getMessage());
}
});
}
static class SyslogHandler implements PacketHandler {
@Override
public void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName) {
}
}
static class DiscoveryHandler implements PacketHandler {
@Override
public void handlePacket(DatagramSocket socket, DatagramPacket packet, String serviceName) {
}
}
}