salida del comando de control remoto tcp

# Servidor 

de importación zócalo
 de importación El subproceso 

# Poder 
Teléfono = socket.socket (socket.AF_INET, socket.SOCK_STREAM) 

# ip vinculante, puerto 
phone.bind (( ' 127.0.0.1 ' , 8080 )) 

# monitor de 
phone.listen (5 ) 

# enlaces que circulan 
al mismo tiempo 1. :
     # de recibir un máximo de 1024 bytes 
    Conn, addr = phone.accept (1024 ) 

    # ciclo de comunicaciones 
    al mismo tiempo 1. :
         # manejo de excepciones 
        el try : 
            Data = conn.recv (1024 )

            # Unix no puede recibir vacío 
            si len (datos) == 0: break 

            res = subprocess.Popen (bata.decode ( ' gbk ' ), (codificación de caracteres predeterminada de Windows 'gbk')       
            shell = True, stderr = subprocess.PIPE, 
            stdout = subprocess.PIPE) 

            resout = res.stdout.read () 
            reserr = res.stderr.read () 

         # Recibe una salida vacía debajo de Windows    
         excepto Excepción:
             break 
    
    conn.close () 

phone.close ()
# Cliente 

Importación zócalo 

Teléfono = socket.socket (socket.AF_INET, socket.SCOK_STREAM) 

# conexión 
phone.connect (( ' 127.0.0.1 ' , 8080 )) 

# salida cíclica 
del tiempo 1. : 
    MSG = input ( ' Introduzca el comando> >> ' ) .strip () 

    # no puede entrar en el vacío 
    SI len (MSG) == 0: Continuar 

    # Enviar mensaje 
    phone.send (msg.encode ( ' GKB ' )) 
    
    datos = phone.recv (1024 ) 

    Imprimir (datos. decodificar ( 'GBK ' )) 

# Cerrar 
phone.close    

Ejecuta el servidor y luego ejecuta el cliente (por supuesto, esto es para jugar contigo mismo), ingresa un comando dir para probar:

                    

 

 Bueno, ya está. .

 

Supongo que te gusta

Origin www.cnblogs.com/qjk95/p/12738734.html
Recomendado
Clasificación