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 ello he hecho un
programa 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
import socket, os, time
s = socket.socket()
s.connect(("localhost", 9999))
programa1 = raw_input("escribe el programa 1: ")
programa2 = raw_input("escribe el programa 2: ")
s.send(programa1)
num = raw_input("escribe el numero de repeticiones: ")
a = 0
n = 0
while True:
for x in range(int(num)):
if n == 0:
s.send(str(a))
n = 1
os.system("programa1")
a += 1
s.send(str(a))
os.system("programa2")
break
s.close()
Y el servidor
Código
import socket, time, os
s = socket.socket()
s.bind(("localhost", 9999))
s.listen(10)
sc, addr = s.accept()
n = 0
print "Recibo conexion de " + str(addr[0]) + ":" + str(addr[1])
while True:
recibido = sc.recv(1024)
t1 = time.time()
if recibido == "0":
n = 1
if n == 1:
recibido = sc.recv(1024)
a = recibido
while True:
if time.time() - t1 > 2:
recibido = sc.recv(1024)
if int(a)+1 == int(recibido):
os.system("taskkill/im" + str(programa")
break
sc.send(recibido)
sc.close()
s.close()
Lo cierto es que el problema varía según intento una cosa u otra pero basicamente el servidor no cumple su fución. El cliente ejecuta ambos
programas como debe ser pero el servidor no cuenta el tiempo
correctamente, y cierra el proceso cuando no es debido. Estoy bastante frustrado asi que si me podeis ayudar os lo agradezco.
Un saludo