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'
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 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())
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!