Tengo una pregunta. Me gustaría enviar un flujo continuo de bytes a algún host durante cierto tiempo (digamos 1 minuto) usando Python.python: cómo enviar paquetes en múltiples hilos y luego el hilo se mata a sí mismo
Aquí está mi código hasta ahora:
#! /usr/bin/env python
import socket
import thread
import time
IP = "192.168.0.2"
PADDING = "a" * 1000 #assume the MTU is slighly above 1000
DATA = PADDING + "this is sentence number = "
PORT = 14444
killed = False
test_time = 60 #60 seconds of testing
def send_data():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((IP, PORT))
count = 1
starttime = time.clock()
while elapsed < test_time:
sent = s.send(DATA + str(count) + "\n")
if sent == 0: break # assume that if nothing is sent -> connection died
count = count+1
elapsed = time.clock() - starttime
if killed:
break
s.close()
print str(count) + " has been sent"
print "to quit type quit"
thread.start_new_thread(send_data,())
while True:
var = raw_input("Enter something: ")
if var == "quit":
killed = True
Pocos cuestionan, ¿existe una mejor manera de dejar morir a un hilo después de 60 segundos que no sean de votación el time.Clock cada vez? Cuando ejecuto este programa, envía los bytes correctamente, pero cuando escribí "quit", el otro no morirá, aunque configuré la variable "killed" = True. Me pregunto, ¿por qué es así? el alcance de var Killed debe alcanzar el otro hilo ¿no?
Gracias
¿Existe realmente un host en esa dirección? ¿Estás usando netcat para capturar la salida o algún otro programa? – johnny
creo que el alcance de 'killed' está bien. – Jiri