2012-12-11 8 views
2

스칼라 앱에 비트 토 런트 기능을 포함하고 싶습니다. 나는 그들의 사용 용이성을 위해 할 수 있다면 마그넷 링크를 독점적으로 사용하고 싶다. 문제는 ttorrent과 같은 미리 만들어진 라이브러리를 사용하고 싶습니다. 그러나, 나는이 libs가 자석 연결을 사용하지 않는다는 것을 발견했다, 그들은 metainfo 또는 급류 파일 자체를 사용한다.Scala의 자석 uri를 사용하여 파일을 다운로드하십시오.

그래서 첫 번째 단계는 자석 링크를 가져 와서 직접 metainfo 개체를 작성하는 것입니다. 마그넷 링크의 구성을 잘 이해하고 매개 변수로 파싱 할 수 있습니다. 나는 자석 파라미터를 어떻게 사용하는지 잘 모르겠습니다. 나는 그들과 어떻게 해야할지 모른다. 내가 할 파싱 한 후

magnet:?xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba&dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80 

:

는 여기에 내가 작업을 PB에 발견 단지 테스트 자석 링크의 충분한 간단한

xt=urn:btih:ad11eb1a0aeed57116225fb341dc61883c22aeba 
dn=Rise.of.the.Guardians.2012.TS.NEW.SOURCE.x264.AAC-UNiQUE 
tr=udp://tracker.openbittorrent.com:80 
tr=udp://tracker.publicbt.com:80 
tr=udp://tracker.istole.it:6969 
tr=udp://tracker.ccc.de:80 

. 이제는 해시를 너무 많이 사용하지 않았지만 직접 정보를 얻을 수는 없다고 확신합니다. 내 유일한 추측은 metainfo를 얻기 위해 트래 커 중 하나에 연락해야 할 수도 있다는 것입니다. 나는 확실하지 않다.

[fyi] 토렌트는 법적 공유, 앱 사용자와 앱 파일 공유시에만 사용됩니다.

답변

1

는 클라이언트가

  1. 이 경우, 동료를 찾을 수 필요가있는 infohash에 따라 메타 데이터를 검색하려면 via UDP trackers (BEP 15) *
  2. 지원 확장 프로토콜을 통해 extension protocol (BEP 10)
  3. 지원 metadata exchange (BEP 9)

readme에 따르면 ttorrent는 BEP 9 및 10을 구현하지 않으므로 자석 링크를 사용할 수 없습니다.

[*] HTTP 추적기와 DHT는 다른 출처이므로 자체 프로토콜이 필요하지만이 예제와 관련이 없습니다.