2015-01-20 7 views
4

나는 다음과 같은 코드를 사용하여 새로운 토레와 공유를 만들지 만 결코 시드하지 않기 때문에 뭔가 잘못되었습니다. 순서새 토렌트 및 시드 만들기

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가 제대로
  • 인쇄 "전체 크기 :"생성 된 스크립트를 실행

    • 및 인쇄는 "이름 :"OK입니다
    • 순서대로 루프 인쇄 :

    100.00 % 완료 (아래 : 0.0 kb/s 0.08BB/s 피어 : 0) 시딩 (8 번)

    100.00 % 완료 (아래 : 0.0kb/s 피어 : 1) 시딩 (11 회) (이는 항상 발생합니다. 하지 않으면 것은 토런트 클라이언트를 실행)

    100.00 % 완료 (아래 :. 0.0 킬로바이트/s의 최대 : 0.0 킬로바이트/s의 동료 : 0) 시딩 (무한 회)

    • 나는 토런트 클라이언트와의 토런트 파일을 실행 아무 일도 일어나지 않습니다. 상용 소프트웨어 로 다운로드에게 토런트를 시도하는 것 외에도
    • enter image description here

      위와 같이, 나는 또한 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) 
    
  • :

    • 나는 다른 추적기를 사용하려고 또한 나중에.

    • lt.torrent_info lt.torrent_info (토런트)로 대체 ('mytorrent.torrent')

    추가 정보 : 테스트를 위해

    • 나는 두 개의 Windows 컴퓨터를 사용하고, 각각에 연결 다른 네트워크. 각 네트워크에서 필요한 포트가 열려 있습니다.
    • 각 테스트를 실행 한 시간은 적어도 1:20 시간입니다.

    기타 테스트 : 내가 공유하는 데 사용하는 컴퓨터에서

    • , 나는 다른 사람이 만든 급류를 공유했습니다. "#Seed torrent"라고 표시된 코드를 실행했습니다 :

      100.00 % 완료 (다운 : 2.0 kb/s up : 45.0 kB/s 동료 : 13) 시딩

    • 토렌트를 다운로드하는 데 사용하는 컴퓨터에서 이미 다른 사람이 만든 토렌트 (libtorrent 포함)를 다운로드했는데 제대로 작동했습니다.

    따라서 "# 토런트 만들기"코드에만 문제가 있다고 생각할 수 있습니다. 추적기가 정보 세트를 저장하지 않는 것처럼

  • +0

    방화벽에서 포트가 열려 있습니까? – thebjorn

    +0

    예. 내가 제외한 모든 토런트를 다운로드 할 수 있습니다. – user3782779

    +0

    씨 뿌리기와 동일한 컴퓨터에서 다운로드를 시도하고 있습니까? 다운로드를 얼마나 오래 기다렸습니까? 포트가 열려 있지 않으면 적어도 하나의 추적기 알림 간격 (일반적으로 30-60 분)을 기다려야합니다. – Arvid

    답변

    4

    "trackerList"에 나열된 대신 다른 추적기를 사용하여 문제가 해결되었습니다. 코드가 정확합니다.