zoukankan      html  css  js  c++  java
  • python socket SSH

    server:

    # -*- coding: utf-8 -*-
    
    import socket,os
    
    server  = socket.socket()
    server.bind(('localhost',9999))
    
    server.listen()
    
    while True:
        conn, addr = server.accept()
        print("new connect:",addr)
        while True:
            data= conn.recv(1024)
            if not data:
                print("客户端已断开")
                break
            print("执行指令:"+data.decode())
            cmd_res = os.popen(data.decode()).read()
            if len(cmd_res) == 0:
                cmd_res="cmd has no output"
                #整数不能直接encode , 要先转成string 在encode
            conn.send(str(len(cmd_res.encode())).encode(encoding='utf_8', errors='strict') ) #先发送大小给客户端
            
            #解决粘包的问题
            client_ack = conn.recv(1024)
            conn.send(cmd_res.encode(encoding='utf_8', errors='strict'))
    
    server.close()

    client:

    # -*- coding: utf-8 -*-
    
    import socket
    client  = socket.socket()
    
    client.connect(('localhost',9999))
    
    while True:
        cmd = input(">>:").strip()
        if len(cmd)==0:continue
        
        client.send(cmd.encode(encoding='utf_8', errors='strict'))
        
        #接收命令结果的长度
        cmd_res_size = client.recv(1024)
        print("cmd_res_size is :",cmd_res_size.decode())
        #解决粘包问题
        client.send(b"send")
        received_size =0
        received_data = b""
        while received_size < int(cmd_res_size.decode()):
    #         print(received_size )
            cmd_res = client.recv(1024)
            #每次收到的字节数
            received_size = received_size+ len(cmd_res)
            received_data = received_data+cmd_res
        print(received_data.decode())
    client.close()
  • 相关阅读:
    Catharanthus roseus(长春花碱)的生物合成
    论文好句积累
    C# OpenFileDialog用法
    JAVA配置环境变量的意义
    如何为织梦表单添加时间
    winform开发基础
    tomcat中jsp编译
    垂直居中——父元素高度确定的单行文本、父元素高度确定的多行文本
    水平居中——行内元素、定宽块、不定宽块
    批处理文件
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/7998304.html
Copyright © 2011-2022 走看看