import socket
import _thread
import time
# 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 = 10 # Overload threshold (Lowered for Wokwi's limited resources)
def handle_client(client_socket, addr):
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(f"🚨 Too many requests! Blocking {addr}")
client_socket.close()
return
client_socket.send(b"Request Processed.\n")
print(f"✅ Processed request from {addr} (Total: {request_count})")
client_socket.close()
print("🚀 ESP32 Server Started on Port 8080...")
while True:
client, addr = server_socket.accept()
print(f"🌐 Connection from {addr}, Request #{request_count}")
_thread.start_new_thread(handle_client, (client, addr))