Это легко проверить объем
я есть вопрос. Я хотел бы посылать непрерывные потоки байтов на некоторый хост на определенное количество времени (скажем, 1 минута), используя python.
Вот мой код до сих пор:
#! /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
Немного вопросов, есть ли лучший способ позволить потоку умереть через 60 секунд, кроме опроса time.clock каждый раз? Когда я запускаю эту программу, она отправляет байты правильно, но когда я набрал quit, другой поток не умрет, даже если я установил var kill = True. Интересно, почему это? сфера действия var Killed должна доходить до другой темы, верно?
Спасибо