If a connected client sends non-UTF8 data, run() will throw an uncaught exception. I added a try/except to catch it, but maybe better options?
try:
connected_node_id = connection.recv(4096).decode('utf-8')
except Exception as e:
print(e)
connection.close()
continue