
Ich versuche meinen eigenen kleinen Torrent Client zu schreiben und scheitere jetzt an der Verbindung zu den einzelnen Peers :/
Hier sind meine Resourcen was das Protokol angehen:
http://wiki.theory.org/BitTorrentSpecification
http://jonas.nitro.dk/bittorrent/bittorrent-rfc.html
Hier mal der Code:
Code: Alles auswählen
# Handshake
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
s.send('\x13BitTorrent protocol\x00\x00\x00\x00\x00\x10\x00\x05' + info_hash + peer_id)
rsp = s.recv(68) # Groesse des Handshakes
# Send Interested
s.send('\x00\x01\x02')
# Send Request
s.send('\x00\x0D\x06\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00')
Der Handshake funktioniert soweit, bei den Messages steh ich jedoch auf dem Schlauch, weil diese ja asynchron übertragen werden.
Wie komm ich jetzt an die Daten, die ich requested habe?
Muss ich einfach ein socket an meinen offenen Port binden und warten das etwas ankommt?
Wenn ja, wie würde das aussehen? Meine bisherigen Versuche damit waren erfolglos

Ausserdem bin ich nicht sicher ob meine Messages richtig zusammengesetzt sind..
aber darum kann ich mich ja kümmern, wenn ich die nicht mehr ins Blaue schieße und zumindest weiß obs ne Antwort darauf gab.
Vielen Dank
