简单的远程操作
服务器端:
__author__ = 'armyz' import socket,os server = socket.socket() server.bind(("localhost",9999)) server.listen() while True: conn,addr = server.accept() print("new conn:",addr) while True: print("接收指令开始") data = conn.recv(1024) if not data: print("客户端已经断开") break print("执行指令:",data) if data.decode() == "cmd": print("不能使用cmd") data = b'ver' cmd_res = os.popen(data.decode()).read() print(type(cmd_res)) print("结果返回",len(cmd_res)) if len(cmd_res) == 0 : cmd_res = "错误的指令" conn.send(str(len(cmd_res.encode("utf-8"))).encode("utf-8")) client_ack = conn.recv(512) #接收一下消息 conn.send(cmd_res.encode("utf-8")) print("指令成功返回") server.close()
客户端:
__author__ = 'armyz' import socket client = socket.socket() client.connect(("localhost",9999)) while True: cmd = input(">>:").strip() if len(cmd) == 0:continue client.send(cmd.encode("utf-8")) cmd_res_size = client.recv(1024) print("命令结果大小:",cmd_res_size) client.send(b"ok") received_size = 0 received_date = b"" while received_size < int(cmd_res_size.decode()): data = client.recv(1024) received_size += len(data) received_date += data else: print("cmd res receive done...!",received_size) print(received_date.decode()) client.close()
发现调用是窗口,就卡在哪里了。这里先MARK一下,以后深入学习后,再回头来看看。
发现写Python越来越有意思了!