server ``` import socket import tkinter as tk from tkinter import * s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ip = '0.0.0.0' port = 9999 s.bind((ip,port)) s.listen(1) print('等待客戶端連接...') # 接受客戶端連接 client_socket, client_address = s.accept() print('已連接:', client_address) #def getclientmg(): #while True: #data = client_socket.recv(1024).decode() #Client_label.configure(windows, text = 1) windows = Tk() windows.title("server") windows.geometry('500x400') tk.Label(windows, text ="Welcome", bg = "lightblue").pack() ip = "服務端" + str(client_address) tk.Label(windows, text = ip, bg = "white").pack() tk.Label(windows, text="輸入訊息").pack() entry_1 = tk.Entry(windows) entry_1.pack() def sendms(): message = entry_1.get() client_socket.send(message.encode()) tk.Button(windows, text="send",command=sendms).pack() tk.Label(windows, text = "發送訊息方塊").pack() entry_2 = tk.Entry(windows) entry_2.pack() def textbox(): message = "textbox(" + entry_2.get() + ")" client_socket.send(message.encode()) tk.Button(windows, text = "send", command = textbox).pack() tk.Label(windows,text = "開啟網站").pack() entry_3 = tk.Entry(windows) entry_3.pack() def opwb(): message = "open(" + entry_3.get() + ")" client_socket.send(message.encode()) tk.Button(windows, text = "send",command=opwb).pack() tk.Label(windows,text = "傳送指令").pack() entry_4 = tk.Entry(windows) entry_4.pack() def runcd(): message = "cmd(" + entry_4.get() + ")" client_socket.send(message.encode()) tk.Button(windows,text = "send",command=runcd).pack() tk.Label(windows, text = "服務端回傳訊息:").pack() Client_label = tk.Label(windows, text = "暫無消息") Client_label.pack() def quit(): client_socket.send("quit".encode()) client_socket.close() s.close() tk.Button(windows, text = "結束連接", command=quit).pack() #thread = threading.Thread(target=getclientmg) #thread.start() # 主視窗的主要事件迴圈 windows.mainloop() s.close() ``` clint ``` import socket import os from tkinter import * import tkinter as tk import webbrowser # 建立 socket 物件 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 設定遠端 IP 和埠號 ip = '192.168.1.114' port = 9999 # 連接服務端 s.connect((ip, port)) while True: # 接收客戶端傳送的資料 data = s.recv(1024).decode() print('接收到資料:', data) # 判斷是否結束連接 if data == 'quit': break if "cmd" in data: data = data[data.find("(") + 1:data.rfind(")")] result = os.popen(data) result = result.read() s.send(result.encode()) if "textbox" in data: data = data[data.find("(") + 1:data.rfind(")")] windows = Tk() windows.lift() label = tk.Label(windows, text = data, width=20, height=5) label.pack() windows.mainloop() if "open" in data: data = data[data.find("(") + 1:data.rfind(")")] webbrowser.open(data) # 關閉 socket 連接 s.close() ```