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.
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