Sau đây là đoạn code mà cố gắng để sửa đổi các đầu vào được cung cấp bởi một người dùng bằng cách sử dụng ổ cắm:Lỗi Loại: một đối tượng byte giống như là bắt buộc, không phải là '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()
Khi tôi thực hiện nó và cung cấp đầu vào lỗi sau xảy ra:
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'
Tôi có thể làm gì để giải quyết vấn đề này?
Đối số đầu tiên ('message') cần phải là byte, nhưng bạn đang chuyển một chuỗi. Bạn nên mã hóa nó trước khi gửi, ví dụ: 'tin nhắn.mã hóa ('utf-8') ' – mgilson
nhưng vấn đề là tôi cần phải vượt qua chuỗi các máy chủ không bytes – sri
từ ổ cắm nhập khẩu * serverName = 'hostname' serverPort = 12000 clientSocket = socket (AF_INET, SOCK_DGRAM) nhắn = đầu vào ('Chữ thường đầu vào:') message.encode ('utf-8') clientSocket.sendto (message, (tên máy chủ, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom (2048) print (modifiedMessage) clientSocket.close() – sri