zoukankan      html  css  js  c++  java
  • day26 作业

    1.整理TCP三次握手、四次挥手图

    2.基于TCP开发一款远程CMD程序
    客户端连接服务器后,可以向服务器发送命令
    服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端,注意: 执行系统指令使用subprocess模块完成.

    #服务端
    import socket
    import subprocess
    
    server=socket.socket()
    
    server.bind(('127.0.0.1',8888))
    
    server.listen()
    
    conn,addr=server.accept()
    print(addr)
    
    while True:
        data=conn.recv(1024).decode('utf-8')
    
        if not data:
            break
    
        print('接收到客户端的命令:',data)
        if data=='q':
            break
    
        res=subprocess.Popen(data,shell=True,
                             stderr=subprocess.PIPE,#接受错误
                             stdin=subprocess.PIPE,
                             stdout=subprocess.PIPE)#原来的值
        err=res.stderr.read()
        if err:
            data_err=err
        else:
            data_err=res.stdout.read()
    
        if not data_err:
            data_err='该命令无返回结果'.encode('gbk')
    
        conn.send(data_err)
    
    conn.close()
    
    
    # 客户端
    import socket
    
    cilent=socket.socket()
    
    cilent.connect(('127.0.0.1',8888))
    while True:
        send_msg=input('向服务器发送命令:')
    
        cilent.send(send_msg.encode('utf-8'))
    
    
        if send_msg=='q':
            break
        data=cilent.recv(1024).decode('gbk')
        print(data)
    
    cilent.close()
    
    
    
    
    
  • 相关阅读:
    fort循环
    while
    函数和数组
    case
    init进程
    权限安全:堡垒机部署实践
    tcp首部当中seq和ack的增长规律
    VRRP
    MSTP
    字符集专题
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/11695238.html
Copyright © 2011-2022 走看看