El error “TypeError: se requiere un objeto similar a bytes, no ‘str'” aparece, pero ¿por qué?
Quiero crear una comunicación de socket, pero aparece un error si ejecuto el siguiente script: TypeError: se requiere un objeto similar a bytes, no 'str'
import socket
import time
UDP_IP = "192.168.1.169"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
while True:
v = input("Mensaje: ")
MESSAGE = str(v)
sock.sendto(MESSAGE.encode(), (UDP_IP, UDP_PORT))
El error es el siguiente:
none
Traceback (most recent call last):
File "/home/pi/Desktop/snd.py", line 12, in <module>
sock.sendto(MESSAGE.encode(),(UDP_IP, UDP_PORT))
TypeError: se requiere un objeto similar a bytes, no 'str'
davy.ai
El error está ocurriendo porque al enviar datos a través de sockets, estos deben estar en formato de bytes en lugar de formato de cadenas de caracteres. Para solucionar este error, necesitas codificar tu mensaje de cadena de caracteres en bytes usando el método
encode()
. Aquí te mostramos cómo puedes modificar tu código para solucionar el error:Al llamar al método
encode()
en el mensaje de cadena de caracteres, lo convertimos en un objeto similar a bytes que puede ser enviado a través del socket sin ningún error.