final final

main
Victor Hans-Georg Waitz 2025-10-21 22:22:25 +02:00
parent e7c4f781a2
commit 0828b032ce
5 changed files with 1 additions and 126 deletions

View File

@ -1,48 +0,0 @@
package vs;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class DiscoveryServer implements Runnable {
private static final int BUFSIZE = 512;
DatagramPacket packetInDiscover = new DatagramPacket(new byte[BUFSIZE], BUFSIZE);
private final int port;
public DiscoveryServer(int port) {
this.port = port;
}
@Override
public void run() {
System.out.println("Discovery running on " + port);
try (DatagramSocket discoverySocket = new DatagramSocket(port)) {
// discoverySocket.setReuseAddress(true);
discoverySocket.setBroadcast(true);
while (true) {
byte[] buffer = new byte[256];
DatagramPacket packetIn = new DatagramPacket(buffer, buffer.length);
discoverySocket.receive(packetIn);
InetAddress clientAddress = packetIn.getAddress();
int clientPort = packetIn.getPort();
System.out.println("DISCOVERY from " + clientAddress.getHostAddress() + ":" + clientPort);
DatagramPacket packetOut = new DatagramPacket(new byte[256], 256);
packetOut.setSocketAddress(packetIn.getSocketAddress());
packetOut.setData(new byte[0]);
packetOut.setLength(0);
discoverySocket.send(packetOut);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -1,11 +0,0 @@
package vs;
public class Main {
private static final int SYSLOG_PORT = 514;
private static final int DISCOVERY_PORT = 8888;
public static void main(String[] args) {
new Thread(new DiscoveryServer(DISCOVERY_PORT), "discovery").start();
new Thread(new SyslogUdpServer(SYSLOG_PORT), "syslog").start();
}
}

View File

@ -54,7 +54,7 @@ public class Server {
} }
String receivedSyslog = new String(packetIn.getData(), 0, packetIn.getLength()); String receivedSyslog = new String(packetIn.getData(), 0, packetIn.getLength());
System.out.println(receivedSyslog); System.out.println(packetIn.getAddress() + ": " + receivedSyslog);
} }
} }

View File

@ -1,46 +0,0 @@
package vs;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class SyslogUdpServer implements Runnable {
private final int port;
private static final int MAX_MESSAGE_LENGTH = 1024;
public SyslogUdpServer(int port) {
this.port = port;
}
@Override
public void run() {
System.out.println("Syslog running on " + port + "\n");
try (DatagramSocket syslogSocket = new DatagramSocket(port)) {
syslogSocket.setReuseAddress(true);
byte[] buffer = new byte[MAX_MESSAGE_LENGTH + 1];
while (true) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
syslogSocket.receive(packet);
int len = packet.getLength();
InetAddress clientAddress = packet.getAddress();
if (len > MAX_MESSAGE_LENGTH) {
System.err.println("Dropped oversized UDP syslog (" + len + " > " + MAX_MESSAGE_LENGTH
+ ") from " + clientAddress.getHostAddress() + ":" + packet.getPort());
continue;
}
// Nachricht decodieren und mit Sender-Info ausgeben
String message = new String(packet.getData(), 0, len).trim();
System.out.println("SYSLOG from " + clientAddress.getHostAddress()
+ ":" + packet.getPort() + " -> " + message);
}
} catch (Exception e) {
// Einfaches Fehler-Logging auf die Konsole
e.printStackTrace();
}
}
}

View File

@ -1,20 +0,0 @@
import socket
# Simple one-shot version
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.settimeout(10)
try:
sock.sendto(b"DISCOVER", ('255.255.255.255', 8888))
print("Broadcast sent, waiting for response...")
data, addr = sock.recvfrom(1024)
print(f"Response from {addr}: {data.decode()}")
except socket.timeout:
print("No response received")
except Exception as e:
print(f"Error: {e}")
finally:
sock.close()