Längenprüfung für Nachricht integriert
parent
5099a7b4d6
commit
4c5842aa8f
|
|
@ -2,7 +2,12 @@ Dokumentation Befehle für Konsole
|
||||||
|
|
||||||
mvn exec:java -Dexec.mainClass="vs.SyslogServer"
|
mvn exec:java -Dexec.mainClass="vs.SyslogServer"
|
||||||
> startet den SyslogServer
|
> startet den SyslogServer
|
||||||
|
> Strg + C um Server im Terminal aus Endlosschleife zu beenden
|
||||||
|
|
||||||
echo "test" | nc -u 127.0.0.1 5514
|
echo "test" | nc -u -w1 127.0.0.1 5514
|
||||||
> Test ob Server auf dem Port 5514 aktiv zuhört; True --> "Nachricht empfangen!"
|
> Test ob Server auf dem Port 5514 aktiv zuhört und Nachricht korrekt ankommt
|
||||||
|
> w1 damit nach einer Sekunde beendet wird, netcat (nc) wartet bei UDP manchmal auf eine Antwort
|
||||||
|
|
||||||
|
python3 -c "print('A'*600)" | nc -u -w1 127.0.0.1 5514
|
||||||
|
> Test Maximallänge überschritten
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,13 @@ public class SyslogServer {
|
||||||
server.start(port);
|
server.start(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final int MAX_MESSAGE_SIZE = 480;
|
||||||
|
|
||||||
public void start(int port) {
|
public void start(int port) {
|
||||||
|
|
||||||
System.out.println("Syslog Server started on port " + port);
|
System.out.println("Syslog Server started on port " + port);
|
||||||
|
|
||||||
|
|
||||||
try{
|
try{
|
||||||
// Create a DatagramSocket to listen for incoming messages
|
// Create a DatagramSocket to listen for incoming messages
|
||||||
DatagramSocket socket = new DatagramSocket(port);
|
DatagramSocket socket = new DatagramSocket(port);
|
||||||
|
|
@ -32,6 +36,12 @@ public class SyslogServer {
|
||||||
|
|
||||||
// Extract the message from the packet + data; how many bytes were actually received
|
// Extract the message from the packet + data; how many bytes were actually received
|
||||||
int length = packet.getLength();
|
int length = packet.getLength();
|
||||||
|
|
||||||
|
|
||||||
|
if (length > MAX_MESSAGE_SIZE) {
|
||||||
|
System.err.println("Received message exceeds maximum allowed size of " + MAX_MESSAGE_SIZE + " bytes. Message will be ignored.");
|
||||||
|
continue; // Skip processing this message
|
||||||
|
}
|
||||||
|
|
||||||
String message = new String(
|
String message = new String(
|
||||||
packet.getData(), // complete byte array be aware: packet.getData() returns the entire buffer, not just the received data
|
packet.getData(), // complete byte array be aware: packet.getData() returns the entire buffer, not just the received data
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue