原理:利用套字節發送命令,在服務端執行,並將執行的結果返回客戶端。
在python3中發送文本使用:send()把字符串encode進行編碼,接受recv()把字符串使用decode進行解碼。
# coding:utf-8 import socket import os # 創建套字節 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 綁定套字節(①獲取主機名,②設置端口) host = socket.gethostname() port = 7777 s.bind((host, port)) # 監聽 s.listen(socket.SOMAXCONN) print("等待連接......") # 處理連接(獲取請求主機的參數) c, addr = s.accept() print("連接成功") c.send('連接成功'.encode('utf-8')) while True: cmd=c.recv(1024).decode('utf-8') result=os.popen(cmd).read() c.send(str(result).encode('utf-8')) s.close()
# coding:utf-8 import socket c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostname() port = 7777 c.connect((host, port)); msg = c.recv(1024).decode('utf-8') print(msg) while True: cmd = input("請輸入命令:") c.send(cmd.encode('utf-8')) result=c.recv(1024).decode('utf-8') print(result) c.close()
