"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

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 ?

Publié le 2024-11-18
Parcourir:193

How to Fix \

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.

Dernier tutoriel Plus>

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