Maison >développement back-end >Tutoriel Python >Comment corriger \'TypeError : un objet de type octets est requis, pas \'str\'\' lors de l'envoi de données via des sockets UDP dans Python 3 ?
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, du côté récepteur du serveur UDP, le message doit être décodé pour correspondre à l'encodage spécifié côté client :
modifiedMessage, serverAddress = clientSocket.recvfrom(2048).decode()
Par 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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!