[python]服务端客户端模拟cmd

来源:互联网 发布:软件ac管理控制器 编辑:程序博客网 时间:2024/05/16 04:59


客户端连入服务端之后,输入命令可从服务端接收到数据回复。




server.py


import socketimport osserver = socket.socket()server.bind(('localhost',6666))server.listen()while True:    print('wating...')    coon,addr = server.accept()    print(addr,'coming...')    while True :        data = coon.recv(1024)        if len(data) <=0:            print(addr,'lost')            break        commend = data.decode('utf-8')        print('rec:',commend)        cmd_response = os.popen(commend).read()        # print(cmd_response,type(cmd_response))        cmd_res_l = str(len(cmd_response))        print(cmd_res_l)        coon.send(bytes(cmd_res_l,encoding = 'utf-8'))        coon.send(bytes(cmd_response,encoding = 'utf-8'))server.close()





client.py

import socketclient = socket.socket()client.connect(('localhost',6666))while True:    try :        commend = input('>>:')        client.send(bytes(commend,encoding = 'utf-8'))        l = 0        rec_data =b""        rec_l = client.recv(1024).decode('utf-8')        # print(rec_l)        while l != int(rec_l):            rec = client.recv(1024)            rec_data += rec            l += len(rec.decode('utf-8'))        else:            print(rec_data.decode('utf-8'))            print('Done!')    except KeyboardInterrupt:        client.close()        exit()