コード例 #1
0
 public BitTorrentDownloader(string peerId, IBencodeParser bencodeParser, IHttpClientHelper httpClientHelper, ITcpSocketHelper tcpSocketHelper,
                             ITorrentFactory torrentFactory, ITrackerResponseFactory trackerResponseFactory, IPeerEventDataFactory peerEventDataFactory)
 {
     _peerId                 = peerId;
     _bencodeParser          = bencodeParser;
     _httpClientHelper       = httpClientHelper;
     _tcpSocketHelper        = tcpSocketHelper;
     _torrentFactory         = torrentFactory;
     _trackerResponseFactory = trackerResponseFactory;
     _peerEventDataFactory   = peerEventDataFactory;
 }
コード例 #2
0
        public Tracker(IHttpClientHelper httpClient, IBencodeParser bencodeParser, ITrackerResponseFactory trackerResponseFactory, string peerId, int port)
        {
            if (peerId?.Length != Constants.PeerIdLength)
            {
                throw new ArgumentException($"Peer Id must be {Constants.PeerIdLength} characters");
            }

            if (port < Constants.MinPortNumber || port > Constants.MaxPortNumber)
            {
                throw new ArgumentException($"Port must be in range [{Constants.MinPortNumber}, {Constants.MaxPortNumber}]");
            }

            BencodeParser          = bencodeParser;
            HttpClient             = httpClient;
            TrackerResponseFactory = trackerResponseFactory;
            PeerId = peerId;
            Port   = port;
        }