je ne suis pas un pro , mais est tu sur que ton paquet existe encore quand tu quittes la fonction send ?
le fait que le socket soit bloquant , tu restes dans le scope de la fonction , en non bloquant , tu la quitte , d'ou le problème , non ? a moins que socket.send() fasse une copie du paquet ? essaye avec des paquets que tu passes en paramètre ?