zoukankan      html  css  js  c++  java
  • tcp远程控制命令输出

    # 服务端
    
    import socket
    import subprocess
    
    # 开机
    phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 绑定ip,端口
    phone.bind(('127.0.0.1', 8080))
    
    # 监听
    phone.listen(5)
    
    # 链接循环
    while 1:
        # 接收最大1024个bytes
        conn, addr = phone.accept(1024) 
    
        # 通信循环
        while 1:
            # 异常处理
            try:
                data = conn.recv(1024)
    
                # unix下不能接收空
                if len(data) == 0:break
    
                res = subprocess.Popen(bata.decode('gbk'),   (windows默认字符编码‘gbk’)      
                shell=True, stderr=subprocess.PIPE, 
                stdout=subprocess.PIPE)
    
                resout = res.stdout.read()
                reserr = res.stderr.read()
    
             # windows下接收空退出   
             except Exception:
                break
        
        conn.close()
    
    phone.close() 
    # 客户端
    
    import socket
    
    phone= socket.socket(socket.AF_INET, socket.SCOK_STREAM)
    
    # 连接
    phone.connect(('127.0.0.1', 8080))
    
    # 循环输出
    while 1:
        msg = input('请输入命令>>>').strip()
    
        # 不能输入空
        if len(msg) == 0:continue
    
        # 发送消息
        phone.send(msg.encode('gkb'))
        
        data = phone.recv(1024)
    
        print(data.decode('gbk'))
    
    # 关闭
    phone.close    

    运行服务端,再运行客户端(当然这是自己和自己玩...),输入个 dir 命令试一下:

                        

     恩,就这样。。

  • 相关阅读:
    docker知识集锦
    kubernetes知识集锦
    redis知识集锦
    Java多线程知识集锦
    vscode离线安装插件
    jsoncpp的简易教程
    为什么要自动化测试?
    如何选择正确的自动化测试工具
    如何选择测试自动化工具?
    测试自动化的五大挑战
  • 原文地址:https://www.cnblogs.com/qjk95/p/12738734.html
Copyright © 2011-2022 走看看