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); }
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; }
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; } }