Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeong-je/torrent-clone
https://github.com/jeong-je/torrent-clone
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jeong-je/torrent-clone
- Owner: Jeong-Je
- Created: 2024-11-09T14:29:08.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-25T06:20:24.000Z (2 months ago)
- Last Synced: 2024-11-25T07:24:11.565Z (2 months ago)
- Language: C
- Size: 509 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 리눅스에서 C언어로 토렌트 구현하기
## Client
### `.torrent` 파일 만들기
```
./torrent make <원본 파일 경로>
```
1. [Bencode](https://en.wikipedia.org/wiki/Bencode) 규칙에 따라 **메타데이터(.torrent)** 생성
2. **메타데이터** 생성이 완료되면 **트래커** 서버에 최초 시드임을 보고### `.torrent`로 파일 다운받기
```
./torrent down <.torrent 파일 경로>
```
1. [Bencode](https://en.wikipedia.org/wiki/Bencode)된 `.torrent` 파일을 디코딩하여 메타데이터 확보
2. 메타데이터에서 트래커 서버 주소 확인 후 시드 정보 요청
3. 시드들과 `P2P` 통신으로 파일 다운로드## Tracker