간단한 Bittorrent 애플리케이션을 작성하는 방법은 무엇입니까?
간단한 비트토렌트 애플리케이션 작성 방법비트토렌트 라이브러리를 사용하는 "헬로 월드"와 같은 것은 비트토렌트의 작동을 이해하는 가장 간단한 응용 프로그램을 의미합니다.저는 파이썬이나 C/C++ 구현을 선호하지만, 어떤 언어든 될 수 있습니다.플랫폼도 문제가 되지 않지만, 저는 리눅스가 더 선호합니다.
도서관이 따라야 할 권장 사항, 저는 http://sourceforge.net/projects/bittorrent/develop 에서 하나의 소스 코드(공식 비트토렌트라고 생각합니다)를 다운로드했습니다.하지만 http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients#Libraries 에서는 다른 도서관들을 많이 볼 수 있습니다.저는 이것에 대한 추천을 해주시면 감사하겠습니다.
랩톱 하나만 있으면 응용 프로그램을 테스트하는 방법.
libtorrent(래스터바)를 사용해 보십시오.http://libtorrent.org
클라이언트를 python으로 작성하려면 Linux에서 다음을 사용하여 설치합니다.
sudo apt-get install python-libtorrent
토렌트를 다운로드하는 데 사용하는 파이썬 코드의 매우 간단한 예:
import libtorrent as lt
import time
import sys
ses = lt.session({'listen_interfaces': '0.0.0.0:6881'})
info = lt.torrent_info(sys.argv[1])
h = ses.add_torrent({'ti': info, 'save_path': '.'})
s = h.status()
print('starting', s.name)
while (not s.is_seeding):
s = h.status()
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, s.state), end=' ')
alerts = ses.pop_alerts()
for a in alerts:
if a.category() & lt.alert.category_t.error_notification:
print(a)
sys.stdout.flush()
time.sleep(1)
print(h.status().name, 'complete')
언급URL : https://stackoverflow.com/questions/5400828/how-to-write-a-simple-bittorrent-application
'programing' 카테고리의 다른 글
데이터 원본이 서버 측 데이터 페이징을 지원하지 않습니다. (0) | 2023.08.08 |
---|---|
Oracle이 "count(*)"에 할당하는 SQL 데이터 유형은 무엇입니까? (0) | 2023.08.08 |
jQuery가 요소를 찾지 못했는지 여부 확인 (0) | 2023.08.08 |
PHP & (ampersand, bitwise and) 연산자 이해하기 (0) | 2023.08.08 |
범위를 벗어난 문자* 참조 (0) | 2023.08.08 |