Décodage du socket Envoyer des données pour résoudre 'TypeError : un objet de type octets est requis, pas 'str'
Dans une tentative de modification entrée de l'utilisateur via les sockets UDP, le code fourni génère une erreur indiquant qu'un objet de type octet est requis au lieu d'une chaîne. Pour résoudre ce problème, le code doit encoder le message d'entrée avant de l'envoyer.
Dans Python 3, les chaînes sont Unicode par défaut, tandis que la communication via les sockets attend des données en octets. Pour garantir la compatibilité, le message doit être converti en octets à l'aide de la méthode encode(). Voici le segment corrigé :
clientSocket.sendto(message.encode(), (serverName, serverPort))
De plus, à la réception du serveur UDP, le message doit être décodé en correspondre à l'encodage spécifié côté client :
modifiedMessage, serverAddress = clientSocket.recvfrom(2048).decode()
En appliquant ces modifications, le code gérera correctement la conversion des données entre les chaînes Unicode et les objets de type octet requis pour les communications socket.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3