Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2014, 13:29
popirey
 
Fecha de Ingreso: marzo-2014
Mensajes: 10
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta [SOLUCIONADO] Controlar tiempo de ejecución de .exe con programa cliente-servidor

Hola,
Estoy intentando crear un programa que haga lo siguiente: El programa debe abrir dos .exe alternativamente el número de veces que le digas, y si el primer .exe dura mas de un tiempo activo, que lo cierre y continue de nuevo abriendo ambos alternativamente. Para ellos he hecho un program cliente-servidor en el que el cliente ejecuta los dos programas y el servidor debe controlar el tiempo del primero, y si este se pasa eliminar el proceso. El cliente es asi:

Código Python:
Ver original
  1. import socket, os, time
  2. s = socket.socket()
  3. s.connect(("localhost",  9999))
  4. programa1 = raw_input("escribe el programa 1: ")
  5. programa2 = raw_input("escribe el programa 2: ")
  6. s.send(programa1)
  7. num = raw_input("escribe el numero de repeticiones: ")
  8. a = 0
  9. n = 0
  10. while  True:
  11.     for x in range(int(num)):
  12.         if n == 0:
  13.             s.send(str(a))
  14.             n = 1
  15.         os.system("programa1")
  16.         a += 1
  17.         s.send(str(a))
  18.         os.system("programa2")
  19.     break
  20. s.close()
  21.  
  22. Y el servidor:
  23. import socket, time, os
  24. s = socket.socket()
  25. s.bind(("localhost",  9999))
  26. s.listen(10)
  27. sc, addr = s.accept()
  28. n = 0
  29. print "Recibo conexion de " + str(addr[0]) + ":" + str(addr[1])
  30. while  True:
  31.     recibido = sc.recv(1024)
  32.     t1 = time.time()
  33.     if recibido == "0":
  34.         n = 1
  35.     if n == 1:
  36.         recibido = sc.recv(1024)
  37.         a = recibido
  38.         while True:
  39.             if time.time() - t1 > 2:
  40.                 recibido = sc.recv(1024)
  41.                 if int(a)+1 == int(recibido):
  42.                     os.system("taskkill/im" + str(programa")
  43.                break
  44. sc.send(recibido)
  45. sc.close()
  46. s.close()
Este es solo uno de los muchos intentos, estoy bastante frustrado y sinceramente no soy capaz de terminarlo.
Antes de nada gracias y un saludo

PD: He creado el tema dos veces, porque sin querer he marcado el primero como solucionado, lo siento

Última edición por razpeitia; 22/03/2014 a las 09:46