我试图让我的客户端程序显示一个图像,其名称对应于从服务器收到的消息。
因此,如果客户收到b'red',它应该在路径上显示图像:“/ home / pi /Desktop / gifs / red.gif”
以下是客户端程序的代码:
import socket
import tkinter as tk
HOST = 'localhost' # The remote host
PORT = 50007 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
message = s.recv(1024)
print(message) # Message is a bytes-like-object e.g. b'red'
root = tk.Tk()
image1 = tk.PhotoImage(file="/home/pi/Desktop/gifs/x.gif")
#x should change accordingly to the received message
Thelabel = tk.Label(image=image1)
Thelabel.pack()
root.update()
如何在我的图片路径中创建一个变量来获取消息中的信息?所以我想像字节一样的对象必须被解码成一个字符串?
答案 0 :(得分:0)
基于@CommonSense对该问题的评论。
byte_string = s.recv(1024)
path = '/home/pi/Desktop/gifs/%s.gif' % byte_string.decode()
root = tk.Tk()
image1 = tk.PhotoImage(file=path)
Thelabel = tk.Label(image=image1)
Thelabel.pack()
root.update()