TypeError:需要一个类似字节的对象,而不是'str'我如何从str转到字节

时间:2020-10-26 23:13:39

标签: python sockets udp

客户端代码

from socket import *

serverName = "192.168.32.100"

serverPort = 12345

clientSocket = socket(AF_INET, SOCK_DGRAM)

i = 1


while (i<= 5) :

message = (input('enter grade to be submitted 
to the server : '))

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

modifiedMessage, serverAddress = 
clientSocket.recvfrom(2048)

print( modifiedMessage)

i = i + 1

clientSocket.close()

服务器端代码

from socket import *
serverPort = 12345
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))
print ("the server is ready to receive grades")

while 1 :

message,clientAddress = 
serverSocket.recvfrom(2048)

if message >= 0 and  message < 49 :
    modifiedMessage = 'F'
elif message > 49  and message <= 70:
    modifiedMessage = 'C'
elif message > 70 and message <=80:
    modifiedMessage = 'B'
elif message > 80 and message <= 100:
    modifiedMessage = 'A'
else :
    modifiedMessage = 'invalid mark'
serverSocket.sendto( modifiedMessage , 
clientAddress)

这是代码 没有编码就可以解决吗? 问题似乎是从这一行clientSocket.sendto(message,(serverName,serverPort)) python的新手不确定如何解决这个问题

1 个答案:

答案 0 :(得分:0)

您需要将字符串message转换为字节数组。您可以通过在调用message时将bytes包装在.sendto函数中来实现:

clientSocket.sendto(bytes(message, 'utf-8'),(serverName, 
serverPort))