"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo solucionar \"TypeError: se requiere un objeto similar a bytes, no \'str\'\" al enviar datos a través de sockets UDP en Python 3?

¿Cómo solucionar \"TypeError: se requiere un objeto similar a bytes, no \'str\'\" al enviar datos a través de sockets UDP en Python 3?

Publicado el 2024-11-18
Navegar:150

How to Fix \

Socket de decodificación envía datos para resolver 'TypeError: se requiere un objeto similar a bytes, no 'str'

En un intento de modificar entrada del usuario a través de sockets UDP, el código proporcionado produce un error que indica que se requiere un objeto similar a bytes en lugar de una cadena. Para rectificar este problema, el código debe codificar el mensaje de entrada antes de enviarlo.

En Python 3, las cadenas son Unicode de forma predeterminada, mientras que la comunicación a través de sockets espera datos en bytes. Para garantizar la compatibilidad, el mensaje debe convertirse a bytes utilizando el método encode(). Aquí está el segmento corregido:

clientSocket.sendto(message.encode(), (serverName, serverPort))

Además, en el extremo receptor del servidor UDP, el mensaje debe decodificarse para coincide con la codificación especificada en el lado del cliente:

modifiedMessage, serverAddress = clientSocket.recvfrom(2048).decode()

Al aplicar estas modificaciones, el código manejará correctamente la conversión de datos entre cadenas Unicode y objetos tipo byte necesarios para las comunicaciones de socket.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3