Poniżej znajduje się kod, który próbuje zmodyfikować wejście dostarczonego przez użytkownika za pomocą gniazd:TypeError: Wymagana jest obiektem bajtów podobny, nie „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()
Kiedy go wykonać i dostarczyć dane wejściowe występuje następujący błąd:
Co mogę zrobić, aby rozwiązać ten problem?
Pierwszy argument ("komunikat") musi być bajtami, ale podajesz ciąg znaków. Powinieneś go zakodować przed wysłaniem, np. 'wiadomość.zakodować ('utf-8') ' – mgilson
ale jest to trzeba przekazać ciąg do serwera nie bajt – sri
z gniazda import * serverName = 'hostname' ServerPort = 12000 clientSocket = socket (AF_INET, SOCK_DGRAM) wiadomości = input ("Wpisz małe zdanie:") message.encode ('utf-8') clientSocket.sendto (wiadomość, (nazwa_serwera, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom (2048) print (modifiedMessage) clientSocket.close() – sri