Maison > développement back-end > Tutoriel Python > Comment gérer l'erreur TypeError : un objet de type octets est requis, pas \'str\'` lors de l'envoi d'une entrée utilisateur via un socket dans Python 3 ?

Comment gérer l'erreur TypeError : un objet de type octets est requis, pas \'str\'` lors de l'envoi d'une entrée utilisateur via un socket dans Python 3 ?

Susan Sarandon
Libérer: 2024-10-29 14:55:02
original
912 Les gens l'ont consulté

How to Handle the `TypeError: a bytes-like object is required, not 'str'` When Sending User Input Through a Socket in Python 3?

Encodage d'objets de type octet pour adresser une erreur de type

Lorsque vous essayez de modifier l'entrée de l'utilisateur via la communication socket, vous pouvez rencontrer l'erreur suivante en Python 3 :

TypeError: a bytes-like object is required, not 'str'
Copier après la connexion

Pour résoudre ce problème, vous devez encoder le message d'entrée avant de l'envoyer via le socket. Python 3 attend des objets de type octet pour le transfert de données réseau, pas des chaînes.

Le code corrigé doit inclure l'ajustement suivant :

clientSocket.sendto(message.encode(),(serverName, serverPort))
Copier après la connexion

En codant la variable de message, vous la convertissez en un objet de type octet qui peut être transmis sur le réseau.

De même, côté serveur, vous devez décoder les données reçues avant de les imprimer pour vous assurer qu'elles s'affichent comme prévu :

modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print (modifiedMessage.decode())
Copier après la connexion

Cette modification corrige efficacement le TypeError et vous permet de transmettre et de modifier avec succès les entrées de l'utilisateur via la communication 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal