Clientes recebendo msgs de outros clientes em broadcast - python socket udp broadcast

Olá, como posso fazer clientes receber msgs de outros clientes em broadcast utilizando python socket?

Fiz um pequena aplicação em python utilizando socket, nela consigo enviar msgs dos clientes para o servidor. Até o momento eu não consegui fazer com que as mensagens de um cliente apareçam no console de outro cliente. Se eu estou utilizando broadcast todos os clientes deveriam receber a mensagem, mas não é o que esta acontecendo e eu não consegui identificar qual problema. Testei também os clientes colocando todos os para ouvirem na mesma porta alterando no código do cliente IP_BROADCAST = “255.255.255.255” PORT = 5000, isso funcionou, o que o cliente digita aparece no outro cliente e no servidor, só que nesse caso eu perco a informação de qual cliente que enviou a mensagem.

Em resumo o que quero é que o que eu digito em console de um cliente apareça no console de outro cliente mas que eu também possa saber qual cliente que enviou.

Obs: meu firewall já está desativado.

Servidor

import socket,threading

IP_BROADCAST = “255.255.255.255”

HOST = ‘’ # Endereco IP do Servidor
PORT = 5000 # Porta que o Servidor esta
my_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

my_socket.bind((HOST,PORT))

def receber():

while True:
	msg, cliente = my_socket.recvfrom(1024)
	print(cliente, msg)

def main():

threadReceber = threading.Thread(target=receber)
threadReceber.start()

if name == ‘main’:
main()

Cliente

import socket,threading

IP_BROADCAST = "255.255.255.255"
PORT = 5000

my_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

my_socket.bind((’’,my_socket.getsockname()[1]))

def receber():

while True:
	msg, cliente = my_socket.recvfrom(1024)
	print(cliente, msg)

def enviar():

while True:
	message = input()
	my_socket.sendto(message.encode(),(IP_BROADCAST,PORT))

def main():

threadReceber = threading.Thread(target=receber)
threadReceber.start()

threadEnviar = threading.Thread(target=enviar)
threadEnviar.start()

if name == ‘main’:
main()