python bittorrent 使用與學習

更新於20171128

關於這個p2p的技術,阿里開源了蜻蜓,你們能夠看看,感受應該比這個要好用,並且文檔也全。php

前言

最近在學習python的p2p協議,發現網上找不到好的文章,又仔細找了找終於找到了武老師以前講的視頻,本身動手作了一下,其實也不太難,不過其中有些地方仍是沒搞懂。這裏就先簡單作個筆記吧。node

基本環境信息

兩臺linux虛擬機python

node1 192.168.3.3
node2 192.168.3.4

基本環境是同樣的linux

[root@node1 dist]# python --version
Python 2.7.5
[root@node1 dist]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

部署

本文大部分python操做都是在這個目錄下/application/bit/murder/dist/git

兩臺都要作的操做:github

mkdir -p /application/bit
cd /application/bit
git clone https://github.com/WisWang/murder #這個是github twitter開源的一個項目,我fork到了個人github上面

準備一個tar文件,不要過小,放到當前目錄:app

cd /
tar cf deploy.tar var
cd /application/bit/murder/dist/
mv /deploy.tar  .

啓動tracker:less

[root@node1 dist]# python murder_tracker.py

如今node1上面作種子:學習

cd /application/bit/murder/dist/
python murder_make_torrent.py deploy.tar 192.168.3.3:8998 deploy.torrent

而後啓動seed:code

python murder_client.py seed deploy.torrent deploy.tar 192.168.3.3

拷貝種子文件到node2(種子文件應該放到http server或者ftp server上,這裏就省略了):

[root@node2 dist]# pwd
/application/bit/murder/dist
[root@node2 dist]# scp 192.168.3.3:$PWD/deploy.torrent .

分別在node1和node2上面啓動peer,

[root@node1 dist]# python murder_client.py peer deploy.torrent deploy_new.tar 192.168.3.3

[root@node2 dist]# python murder_client.py peer deploy.torrent deploy_new.tar 192.168.3.4

一下子就能看到這個deploy_new.tar下載完成了。
下載完成和作seed的時候都會看到 done and done這個信息

[root@node2 dist]# python murder_client.py peer deploy.torrent deploy_new.tar 192.168.3.4
done and done

下面是tracker的log供你們參考:

[root@node1 dist]# python murder_tracker.py
192.168.3.3 - - [08/May/2017:07:43:00] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----OQSfu8jzTCo&port=13159&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&event=started&ip=192.168.3.3&key=MCe15v HTTP/1.1" 200 60 "-" "BitTornado/T-0.3.17"
192.168.3.4 - - [08/May/2017:07:43:12] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----NwZ3DidklAM&port=15595&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&event=started&ip=192.168.3.4&key=vBp8fR HTTP/1.1" 200 67 "-" "BitTornado/T-0.3.17"
192.168.3.3 - - [08/May/2017:07:43:16] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----OQSfu8jzTCo&port=13159&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&ip=192.168.3.3&key=MCe15v HTTP/1.1" 200 67 "-" "BitTornado/T-0.3.17"
192.168.3.4 - - [08/May/2017:07:43:27] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----NwZ3DidklAM&port=15595&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&ip=192.168.3.4&key=vBp8fR HTTP/1.1" 200 67 "-" "BitTornado/T-0.3.17"
192.168.3.3 - - [08/May/2017:07:43:31] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----OQSfu8jzTCo&port=13159&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&ip=192.168.3.3&key=MCe15v HTTP/1.1" 200 67 "-" "BitTornado/T-0.3.17"
192.168.3.4 - - [08/May/2017:07:43:42] "GET /announce?info_hash=%FE%CE%A6%C6%28%0B%AB%DEve%00%8B%19%D1%80%A5%8A%DD%A3%D8&peer_id=T03H-----NwZ3DidklAM&port=15595&uploaded=0&downloaded=0&left=0&no_peer_id=1&compact=1&event=stopped&ip=192.168.3.4&key=vBp8fR HTTP/1.1" 200 54 "-" "BitTornado/T-0.3.17"
相關文章
相關標籤/搜索