0
我完全是Python和計算機網絡的新手。在Uni項目上工作時,我遇到了一個問題。我究竟做錯了什麼?我非常感謝任何幫助。UDP TypeError:不支持的操作數類型爲+:'NoneType'和'str'
下面是服務器端:
import socket
def Main():
host = "127.0.0.1"
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print ("Server Started.")
while True:
data, addr = s.recvfrom(1024)
print ("message from: ") + str(addr)
print ("from connected user: ") + str(data.decode('utf-8'))
data = str(data).upper()
print ("sending: ") + str(data)
s.sendto(data, addr)
s.close()
if __name__ == '__main__':
Main()
這裏是我的客戶端:
import socket
def Main():
host = "127.0.0.1"
port = 5000
server = ('127.0.0.1', 5000)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
message = input('->')
while message != 'q':
s.sendto(message.encode('utf-8'), server)
data, addr = s.recvfrom(1024)
print ('Received from server: ') + str(data)
message = input('->')
s.close()
if __name__ == '__main__' :
Main()
謝謝愛德華這麼多。這在客戶端:print('Received from server:'+ str(data.decode('utf-8')))? –
良好的皮卡 - 是的,你需要在客戶端。在收到數據後,根據需要轉換數據可能更容易,那麼每次使用它時都不必使用它。例如:'data = data.decode('utf-8')',那麼你可以使用數據作爲字符串(它會是)。 –