创建新的种子和种子
Create new torrent and seed
我正在使用以下代码创建一个新的 torret 并进行分享,但出现了问题,因为我从未播种。
import sys
import time
import libtorrent as lt
#Create torrent
fs = lt.file_storage()
lt.add_files(fs, "./test.txt")
t = lt.create_torrent(fs)
t.add_tracker("udp://tracker.openbittorrent.com:80/announce", 0)
t.set_creator('libtorrent %s' % lt.version)
t.set_comment("Test")
lt.set_piece_hashes(t, ".")
torrent = t.generate()
f = open("mytorrent.torrent", "wb")
f.write(lt.bencode(torrent))
f.close()
#Seed torrent
ses = lt.session()
ses.listen_on(6881, 6891)
h = ses.add_torrent({'ti': lt.torrent_info('mytorrent.torrent'), 'save_path': '.', 'seed_mode': True})
print "Total size: " + str(h.status().total_wanted)
print "Name: " + h.name()
while True:
s = h.status()
state_str = ['queued', 'checking', 'downloading metadata', \
'downloading', 'finished', 'seeding', 'allocating', 'checking fastresume']
print('\r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s' % \
(s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, s.num_peers, state_str[s.state]))
sys.stdout.flush()
time.sleep(1)
按顺序测试:
- 我运行脚本
- mytorrent.torrent 正确创建
- 打印"Total size: "并打印"Name:"即可
- 按顺序循环打印:
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:0)播种(8 次)
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:1)播种(11 次)(这种情况总是发生,即使不是 运行 洪流客户端.)
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:0)播种(无限次)
- 我 运行 使用 torrent 客户端下载 torrent 文件,但没有任何反应。
- 除了尝试用商业软件下载种子
如上所述,我也尝试过使用 libtorrent 库下载。
始终显示 0 个同行。
具有相同结果的测试变化:
我尝试使用不同的追踪器:
trackerList = ['udp://tracker.istole.it:80/announce',
'udp://tracker.ccc.de:80/announce',
'http://tracker.torrentbay.to:6969/announce',
'udp://fr33domtracker.h33t.com:3310/announce',
'udp://tracker.publicbt.com:80/announce',
'udp://tracker.openbittorrent.com:80/announce',
'udp://11.rarbg.com/announce'
'udp://tracker.istole.it:80/announce']
for tracker in trackerList:
t.add_tracker(tracker, 0)
我在执行脚本后立即 运行 客户端中有 torrent 文件,之后也有。
- lt.torrent_info('mytorrent.torrent') 替换为 lt.torrent_info(torrent)
附加信息:
- 为了测试,我使用了两台 Windows 计算机,每台计算机都连接到不同的网络。
在每个网络中,所需的端口都是打开的。
- 每个测试的 运行 时间至少 1:20 小时。
其他测试:
在我以前共享的电脑上,我尝试共享一个别人创建的种子文件。我有 运行 标有“#Seed torrent”的代码有效:
100.00% 完成(下降:2.0 kb/s 上升:45.0 kB/s 同行:13)播种
在我用来下载 torrent 的电脑上,我下载了一个已经由其他人创建的 torrent(带有 libtorrent),并且运行正常。
所以我只能认为是“#create torrent”这一段代码有问题。好像tracker不会保存信息集。
问题已通过使用不同的跟踪器解决,而不是在 "trackerList" 中列出。代码正确。
我正在使用以下代码创建一个新的 torret 并进行分享,但出现了问题,因为我从未播种。
import sys
import time
import libtorrent as lt
#Create torrent
fs = lt.file_storage()
lt.add_files(fs, "./test.txt")
t = lt.create_torrent(fs)
t.add_tracker("udp://tracker.openbittorrent.com:80/announce", 0)
t.set_creator('libtorrent %s' % lt.version)
t.set_comment("Test")
lt.set_piece_hashes(t, ".")
torrent = t.generate()
f = open("mytorrent.torrent", "wb")
f.write(lt.bencode(torrent))
f.close()
#Seed torrent
ses = lt.session()
ses.listen_on(6881, 6891)
h = ses.add_torrent({'ti': lt.torrent_info('mytorrent.torrent'), 'save_path': '.', 'seed_mode': True})
print "Total size: " + str(h.status().total_wanted)
print "Name: " + h.name()
while True:
s = h.status()
state_str = ['queued', 'checking', 'downloading metadata', \
'downloading', 'finished', 'seeding', 'allocating', 'checking fastresume']
print('\r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s' % \
(s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, s.num_peers, state_str[s.state]))
sys.stdout.flush()
time.sleep(1)
按顺序测试:
- 我运行脚本
- mytorrent.torrent 正确创建
- 打印"Total size: "并打印"Name:"即可
- 按顺序循环打印:
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:0)播种(8 次)
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:1)播种(11 次)(这种情况总是发生,即使不是 运行 洪流客户端.)
100.00% 完成(向下:0.0 kb/s 向上:0.0 kB/s 同行:0)播种(无限次)
- 我 运行 使用 torrent 客户端下载 torrent 文件,但没有任何反应。
- 除了尝试用商业软件下载种子 如上所述,我也尝试过使用 libtorrent 库下载。 始终显示 0 个同行。
具有相同结果的测试变化:
我尝试使用不同的追踪器:
trackerList = ['udp://tracker.istole.it:80/announce', 'udp://tracker.ccc.de:80/announce', 'http://tracker.torrentbay.to:6969/announce', 'udp://fr33domtracker.h33t.com:3310/announce', 'udp://tracker.publicbt.com:80/announce', 'udp://tracker.openbittorrent.com:80/announce', 'udp://11.rarbg.com/announce' 'udp://tracker.istole.it:80/announce'] for tracker in trackerList: t.add_tracker(tracker, 0)
我在执行脚本后立即 运行 客户端中有 torrent 文件,之后也有。
- lt.torrent_info('mytorrent.torrent') 替换为 lt.torrent_info(torrent)
附加信息:
- 为了测试,我使用了两台 Windows 计算机,每台计算机都连接到不同的网络。 在每个网络中,所需的端口都是打开的。
- 每个测试的 运行 时间至少 1:20 小时。
其他测试:
在我以前共享的电脑上,我尝试共享一个别人创建的种子文件。我有 运行 标有“#Seed torrent”的代码有效:
100.00% 完成(下降:2.0 kb/s 上升:45.0 kB/s 同行:13)播种
在我用来下载 torrent 的电脑上,我下载了一个已经由其他人创建的 torrent(带有 libtorrent),并且运行正常。
所以我只能认为是“#create torrent”这一段代码有问题。好像tracker不会保存信息集。
问题已通过使用不同的跟踪器解决,而不是在 "trackerList" 中列出。代码正确。