1

twisted を使用して次の URL に接続し、トラッカーからの応答を取得する方法。udp://tracker.publicbt.com:80/announce?uploaded=0&downloaded=0&compact=1&event=started&peer_id=kovid_agarwal1235467&port=6881&info_hash=3389809f0c9096819294a680beb4adb96a738419&left=763922958

次のコードを試しましたが、接続 ID の不一致エラーが発生します

from twisted.internet.protocol import DatagramProtocol
from MakeUrlRequest import  encoded_Value


class SendAndReceiveUDP(DatagramProtocol):

    def startProtocol(self):
        self.transport.connect("31.172.124.3",80)
        self.transport.write(encoded_Value())


    def datagramReceived(self, datagram, addr):
        print "Received %r" %datagram
from twisted.internet import reactor
udpclient=SendAndReceiveUDP()
reactor.listenUDP(6881,udpclient)
reactor.run()

エンコードされた値の上には、次のような値があります。

4

1 に答える 1

2

http://en.wikipedia.org/wiki/UDP_trackerによると、Bittorrentトラッカーとデータを交換するためのUDPベースのプロトコルは「カスタムバイナリ形式」を使用します。送信しているデータがこの形式に準拠しているようには見えません。したがって、受け取ったエラーは、リクエストを別の方法でフォーマットする必要があることを示している可能性があります。この形式の詳細については、http://www.bittorrent.org/beps/bep_0015.htmlを参照してください。

于 2012-12-24T01:35:10.840 に答える