Beispiel #1
0
        private void SendPiece(BitTorrentPeer peer, BlockRequest request)
        {
            long dataOffset = ApplicationProtocol.Metainfo.PieceSize * request.PieceIndex + request.Offset;

            byte[] data = ApplicationProtocol.DataHandler.ReadBlockData(dataOffset, request.Length);

            peer.SendMessage(new PieceMessage(request.ToBlock(data)));
            ApplicationProtocol.UploadedData(data);
        }
Beispiel #2
0
 public PeerContext(
     BitTorrentPeer peer,
     Dictionary <string, object> customValues,
     ITorrentContext torrentContext,
     Action <byte> registerMessageHandler)
 {
     Peer                    = peer;
     _customValues           = customValues;
     _registerMessageHandler = registerMessageHandler;
     _torrentContext         = torrentContext;
 }
 public MessageReceivedContext(
     BitTorrentPeer peer,
     ITorrentContext torrentContext,
     int messageId,
     int messageLength,
     BinaryReader reader,
     Dictionary <string, object> customValues,
     Action <byte> registerMessageHandler)
     : base(peer, customValues, torrentContext, registerMessageHandler)
 {
     Reader        = reader;
     MessageId     = messageId;
     MessageLength = messageLength;
 }
Beispiel #4
0
            internal PeerDetails(BitTorrentPeer x)
            {
                Address       = x.Address;
                PeerId        = Convert.ToBase64String(x.PeerId.Value.ToArray());
                Client        = x.PeerId.ClientName;
                ClientVersion = x.PeerId.ClientVersion;
                string ipAddress = Address.Split(':').First();

                SupportedExtensions = GetProtocolExtensions(x.SupportedExtensions);

                try
                {
                    var hostEntry = Dns.GetHostEntryAsync(ipAddress).Result;
                    Host = hostEntry.HostName;
                }
                catch
                {
                    Host = ipAddress;
                }
            }