Voici comment régler le problème que presque tout le monde à, on encode en ASCII pour envoyer sur un socket et quand on envoie par exemple un é, on reçoit un ? :
Remplacer la ligne :
ASCII.GetBytes() et .GetString()
par :
UTF8.GetBytes() et .GetString()