2018-08-14 10:52:10
这篇先暂时这么写了……还没来得及设置任何样式
1、客户端
1 import socket,os 2 #创建套接字 3 client = socket.socket() 4 #连接一个套接字地址 5 client.connect(('localhost',9999)) 6 while True: 7 #输入一个DOS或者shell命令 8 cmd = input(">> ").strip() 9 if len(cmd) == 0: continue 10 client.send(cmd.encode("utf-8")) 11 data_size = client.recv(1024) 12 print("返回长度: ",data_size.decode()) 13 recv_size = 0 14 recv_data = b'' 15 #连续接收数据 16 while recv_size != int(data_size.decode()): 17 data = client.recv(1024) 18 recv_size += len(data) 19 recv_data +=data 20 else: 21 #接收完成,输出结果 22 print(recv_data.decode()) 23 print("recv done...",recv_size)
2、服务器端
1 import socket,os 2 server = socket.socket() 3 #绑定并且监听该端口 4 server.bind(('localhost',9999)) 5 server.listen() 6 7 while True: 8 #接收一个客户端的连接 9 conn, addr = server.accept() 10 print("新连接",addr) 11 while True: 12 print("等待新连接") 13 data = conn.recv(1024) 14 if not data: 15 print("客户端已经断开连接") 16 break 17 print("开始发送数据") 18 cmd_res = os.popen(data.decode()).read() #接受字符串,读取字符串 19 if len(cmd_res) == 0: 20 cmd_res = 'cmd has no input...' 21 print("发送长度",len(cmd_res)) 22 conn.send(str(len(cmd_res.encode("utf-8"))).encode("utf-8")) 23 print("执行指令", data) 24 conn.send(cmd_res.encode("utf-8")) 25 print("发送数据完成") 26 print(cmd_res)