import socket
import time
import threading
# Create a TCP server (Victim)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("0.0.0.0", 8080)) # Listen on port 8080
server_socket.listen(5) # Max 5 concurrent connections
request_count = 0
max_requests = 50 # Overload threshold
def handle_client(client_socket):
global request_count
request_count += 1
# Simulate server processing time
time.sleep(0.2)
if request_count > max_requests:
client_socket.send(b"Server Overloaded! Closing Connection.\n")
print("🚨 Server Overloaded! Closing connections...")
client_socket.close()
return
client_socket.send(b"Request Processed.\n")
client_socket.close()
print("🚀 Raspberry Pi Server Started...")
while True:
client, addr = server_socket.accept()
print(f"🌐 Connection from {addr}, Request #{request_count}")
client_handler = threading.Thread(target=handle_client, args=(client,))
client_handler.start()