s = MySocket()
s.connect(SERVER_HOST, SERVER_PORT)
start_data = {CLIENT: TRANSMISSION, PORT:10150,
- TORRENT: "/home/adriana/p2p/p2p-meta/scrubs.torrent",
+ TORRENT: "/home/adriana/p2p/p2p-meta/photos.zip.torrent",
DL_DIR: "/home/adriana/p2p/p2p-dld/transmission",
LOG_DIR: "/home/adriana/p2p/p2p-log/transmission",
- OUT_FILE: "scrubs.out",
- LOG_FILE: "transmission-scrubs.log",
+ OUT_FILE: "photos.zip.out",
+ LOG_FILE: "transmission-photos.zip.log",
}
response = s.send_command(START_MSG, start_data)
print pid
s = MySocket()
s.connect(SERVER_HOST, SERVER_PORT)
- time.sleep(30)
+ time.sleep(60)
response = s.send_command(STOP_MSG, pid)
print response
BUFFER_SIZE = 4096
states = {} # keeps track of what kind of message was previously receveid on a socket.
-
+processes = {}
WAITING_MSG_TYPE = 0
WAITING_START_DATA = 3
WAITING_STOP_DATA = 4
bt_client_data[TORRENT])
btcr.start()
- pid = btcr.run_client(btcr.simple_run_command)
+ [pid, log_fd, output_fd] = btcr.run_client(btcr.simple_run_command)
+ processes[pid] = (log_fd, output_fd)
+ print processes[pid]
if(DEBUG):
print "Server: started client with pid = ", pid
return pid
def stop_bt_client(pid):
- os.kill(int(pid), signal.SIGKILL) # kill generates zombies
- os.wait()
+ int_pid = int(pid)
+ os.kill(int_pid, signal.SIGKILL) # kill generates zombies
+ os.wait()
+ print int_pid
+ print processes
+ processes[int_pid][0].close()
+ processes[int_pid][1].close()
+ del processes[int_pid]
if(DEBUG):
print "Server: killed process with pid = ", pid
pid = p.pid
if(DEBUG):
print "BitTorrentClientRun: pid =", pid
- return pid
+ return [pid, log_redirect, output_redirect]
def main():
class TransmissionRun(BitTorrentClientRun):
def __init__(self, base_path):
BitTorrentClientRun.__init__(self, base_path,
- "$base_path --port $port $torrent_file $download_dir> $output_dir/$output_file",
- "TR_DEBUG=2 $base_path --port $port $torrent_file $download_dir 2> $log_dir/$log_file > $output_dir/$output_file")
- # for some versions of transmission the cmdline arguments are given differently:
- """BitTorrentClientRun.__init__(self, base_path,
"$base_path --download-dir $download_dir --port $port $torrent_file > $output_dir/$output_file",
"TR_DEBUG=2 $base_path --download-dir $download_dir --port $port $torrent_file 2> $log_dir/$log_file > $output_dir/$output_file")
- """
+
def main():