diff --git a/syslogserver.py b/syslogserver.py
index 0dcd050..db45e7f 100644
--- a/syslogserver.py
+++ b/syslogserver.py
@@ -15,6 +15,7 @@ class SyslogServer:
         self.port = port
         self.server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
         self.server.bind((self.host, self.port))
+        self.server.settimeout(0.5)  # Set timeout to allow checking self.running
         self.start_time = None
         self.running = True
 
@@ -28,6 +29,8 @@ class SyslogServer:
             try:
                 data, address = self.server.recvfrom(1024)
                 self.handle_message(data)
+            except socket.timeout:
+                continue  # Check self.running again
             except KeyboardInterrupt:
                 self.running = False