Victor Hans-Georg Waitz 2025-10-21 19:15:35 +02:00
parent 0e73a2ecf9
commit c467a3e9bb
4 changed files with 9 additions and 5 deletions

View File

@ -7,6 +7,7 @@ import java.net.InetAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
public class Client { public class Client {
private static final int BUFSIZE = 512;
public static void main(String[] args) { public static void main(String[] args) {
try (DatagramSocket socket = new DatagramSocket()) { try (DatagramSocket socket = new DatagramSocket()) {
socket.setBroadcast(true); socket.setBroadcast(true);
@ -16,21 +17,22 @@ public class Client {
byte[] buffer = message.getBytes(); byte[] buffer = message.getBytes();
InetAddress broadcastAddress = InetAddress.getByName("255.255.255.255"); InetAddress broadcastAddress = InetAddress.getByName("255.255.255.255");
int port = 8888; int discoveryPort = 8888;
DatagramPacket packetOutDisover = new DatagramPacket(buffer, buffer.length, broadcastAddress, port); DatagramPacket packetOutDisover = new DatagramPacket(buffer, buffer.length, broadcastAddress, discoveryPort);
socket.send(packetOutDisover); socket.send(packetOutDisover);
//? Got server IP //? Got server IP
DatagramPacket packetIn = new DatagramPacket(new byte[512], 512); DatagramPacket packetIn = new DatagramPacket(new byte[BUFSIZE], BUFSIZE);
socket.receive(packetIn); socket.receive(packetIn);
System.out.println("Recieved from " + packetIn.getSocketAddress()); System.out.println("Recieved from " + packetIn.getSocketAddress());
DatagramPacket packetOutSyslog = new DatagramPacket(new byte[BUFSIZE], BUFSIZE); DatagramPacket packetOutSyslog = new DatagramPacket(new byte[BUFSIZE], BUFSIZE);
packetOutSyslog.setAddress(packetIn.getAddress()); packetOutSyslog.setAddress(packetIn.getAddress());
packetOutSyslog.setPort(514); int syslogPort = 514;
packetOutSyslog.setPort(syslogPort);
String syslogMessage = formatSyslogMessage(message); String syslogMessage = formatSyslogMessage(message);
byte[] syslogMessageBytes = syslogMessage.getBytes(); byte[] syslogMessageBytes = syslogMessage.getBytes();

View File

@ -17,6 +17,7 @@ public class DiscoveryServer implements Runnable {
@Override @Override
public void run() { public void run() {
System.out.println("Discovery running on " + port);
try (DatagramSocket discoverySocket = new DatagramSocket(port)) { try (DatagramSocket discoverySocket = new DatagramSocket(port)) {
discoverySocket.setReuseAddress(true); discoverySocket.setReuseAddress(true);
discoverySocket.setBroadcast(true); discoverySocket.setBroadcast(true);

View File

@ -8,7 +8,7 @@ public class Main {
private static final int DISCOVERY_PORT = 8888; // Port für Auto-Discovery private static final int DISCOVERY_PORT = 8888; // Port für Auto-Discovery
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("Syslog server is running on UDP/514 and discovery on UDP/8888..."); // System.out.println("Syslog server is running on UDP/514 and discovery on UDP/8888...");
// Thread 1: Empfängt Syslog-Nachrichten und druckt Sender-IP + Nachricht // Thread 1: Empfängt Syslog-Nachrichten und druckt Sender-IP + Nachricht
new Thread(new SyslogUdpServer(SYSLOG_PORT), "syslog").start(); new Thread(new SyslogUdpServer(SYSLOG_PORT), "syslog").start();
// Thread 2: Beantwortet Broadcast-Anfragen und verrät so die Server-IP // Thread 2: Beantwortet Broadcast-Anfragen und verrät so die Server-IP

View File

@ -19,6 +19,7 @@ public class SyslogUdpServer implements Runnable {
@Override @Override
public void run() { public void run() {
System.out.println("Syslog running on " + port);
// Socket öffnen und auf allen Interfaces an Port 514 lauschen // Socket öffnen und auf allen Interfaces an Port 514 lauschen
try (DatagramSocket syslogSocket = new DatagramSocket(port)) { try (DatagramSocket syslogSocket = new DatagramSocket(port)) {
syslogSocket.setReuseAddress(true); // erlaubt schnelles Neu-Starten syslogSocket.setReuseAddress(true); // erlaubt schnelles Neu-Starten