Il seguente è il codice che tenta di modificare il segnale fornito da un utente utilizzando prese:TypeError: è necessario un oggetto bytes simile, non 'str'
from socket import *
serverName = '127.0.0.1'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = input('Input lowercase sentence:')
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print (modifiedMessage)
clientSocket.close()
Quando eseguire e di alimentazione in ingresso si verifica il seguente errore:
Input lowercase sentence:fdsgfdf
Traceback (most recent call last):
File "C:\srinath files\NETWORKS\UDPclient.py", line 6, in <module>
clientSocket.sendto(message,(serverName, serverPort))
TypeError: a bytes-like object is required, not 'str'
Cosa posso fare per risolvere questo?
Il primo argomento ('messaggio') deve essere byte, ma si passa una stringa. Dovresti codificarlo prima di inviare, ad es. 'Messaggio.encode ('utf-8') ' – mgilson
ma la cosa è ho bisogno di passare stringa al server non byte – sri
dalla presa import * serverName = 'hostname' serverPort = 12000 clientSocket = socket (AF_INET, SOCK_DGRAM) messaggio = input ('Immettere la frase minuscola:') message.encode ('utf-8') clientSocket.sendto (messaggio, (serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom (2048) stampa (modifiedMessage) clientSocket.close() – sri