Encodage d'objets de type octet pour adresser une erreur de type
Lorsque vous essayez de modifier l'entrée utilisateur via la communication socket, vous pouvez rencontrer l'erreur suivante dans Python 3:
TypeError: a bytes-like object is required, not 'str'
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))
En codant la variable du 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 l'imprimer pour vous assurer qu'il s'affiche comme prévu :
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print (modifiedMessage.decode())
Cette modification corrige efficacement l'erreur TypeError et vous permet de transmettre et de modifier avec succès les entrées de l'utilisateur via la communication 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