客户端代码
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的新手不确定如何解决这个问题
答案 0 :(得分:0)
您需要将字符串message
转换为字节数组。您可以通过在调用message
时将bytes
包装在.sendto
函数中来实现:
clientSocket.sendto(bytes(message, 'utf-8'),(serverName,
serverPort))