private static BenDecoder DecoderForString(string value) { MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(value.ToCharArray())); BenDecoder decoder = new BenDecoder(stream); return(decoder); }
public void ReadDictionaryOfDictionaries() { BenDecoder decoder = DecoderForString("d4:dictd4:spam4:eggsee"); IDictionary dictionary = decoder.ReadDictionary(); Assert.AreEqual(1, dictionary.Count); Assert.IsInstanceOfType(typeof(IDictionary), dictionary["dict"]); }
public static IDictionary Decode(string fileName) { FileStream stream = new FileStream(fileName, FileMode.Open); BenDecoder decoder = new BenDecoder(stream); IDictionary result = decoder.ReadDictionary(); stream.Close(); return result; }
public void ListOfStrings() { BenDecoder decoder = DecoderForString("l4:spam4:eggse"); IList list = decoder.ReadList(); Assert.AreEqual(2, list.Count); Assert.AreEqual("spam", list[0].ToString()); Assert.AreEqual("eggs", list[1].ToString()); }
public void ListOfIntsAndStrings() { BenDecoder decoder = DecoderForString("li4e4:spame"); IList list = decoder.ReadList(); Assert.AreEqual(2, list.Count); Assert.AreEqual(4, list[0]); Assert.AreEqual("spam", list[1].ToString()); }
public void ListOfLists() { BenDecoder decoder = DecoderForString("li18el4:spam4:eggsee"); IList list = decoder.ReadList(); Assert.AreEqual(2, list.Count); Assert.AreEqual(18, list[0]); Assert.IsInstanceOfType(typeof(IList), list[1]); }
public void ReadDictionary() { BenDecoder decoder = DecoderForString("d3:cow3:moo4:spam4:eggse"); IDictionary dictionary = decoder.ReadDictionary(); Assert.AreEqual(2, dictionary.Count); Assert.AreEqual("moo", dictionary["cow"].ToString()); Assert.AreEqual("eggs", dictionary["spam"].ToString()); }
public static IDictionary Decode(string fileName) { FileStream stream = new FileStream(fileName, FileMode.Open); BenDecoder decoder = new BenDecoder(stream); IDictionary result = decoder.ReadDictionary(); stream.Close(); return(result); }
static void Main(string[] args) { string filename = args[0]; BenDecoder decoder = new BenDecoder(File.OpenRead(filename)); Torrent torrent = new Torrent(decoder.ReadDictionary()); Console.WriteLine("Tracker: {0}", torrent.AnnounceUri); Console.WriteLine("Number of pieces: {0}", torrent.Pieces.Count); Console.WriteLine("Piece length: {0}", torrent.PieceLength); Console.WriteLine("Hash: {0}", torrent.InfoHash.ToHexString()); Console.WriteLine("Files:"); foreach (ITorrentFile file in torrent.Files) { Console.WriteLine(" Name: {0}, Size: {1}", file.Name, file.Length); } }
public TrackerResponse(ByteString responseText) { HttpResponse response = new HttpResponse(responseText); BenDecoder decoder = new BenDecoder(new MemoryStream(response.Content.ToBytes())); responseContent = decoder.ReadDictionary(); if(IsSuccessful) { ByteString peers = responseContent["peers"] as ByteString; BinaryReader reader = new BinaryReader(new MemoryStream(peers.ToBytes())); for(int i = 0; i<peers.ToBytes().Length; i+=6) { peerList.Add(new PeerInfo(reader.ReadBytes(4), reader.ReadInt16())); } } }
public TrackerResponse(ByteString responseText) { HttpResponse response = new HttpResponse(responseText); BenDecoder decoder = new BenDecoder(new MemoryStream(response.Content.ToBytes())); responseContent = decoder.ReadDictionary(); if (IsSuccessful) { ByteString peers = responseContent["peers"] as ByteString; BinaryReader reader = new BinaryReader(new MemoryStream(peers.ToBytes())); for (int i = 0; i < peers.ToBytes().Length; i += 6) { peerList.Add(new PeerInfo(reader.ReadBytes(4), reader.ReadInt16())); } } }
public void NegativeInteger() { BenDecoder decoder = DecoderForString("i-4e"); Assert.AreEqual(-4L, decoder.ReadInt()); }
private static BenDecoder DecoderForString(string value) { MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(value.ToCharArray())); BenDecoder decoder = new BenDecoder(stream); return decoder; }
public void NonsenceInputThrowsException() { BenDecoder decoder = DecoderForString("Nonsence!"); decoder.ReadDictionary(); }
public void DecodeString() { BenDecoder decoder = DecoderForString("4:spam"); Assert.AreEqual("spam", decoder.ReadString().ToString()); }
public void DecoderZeroLengthString() { BenDecoder decoder = DecoderForString("0:"); Assert.AreEqual("", decoder.ReadString().ToString()); }
public void DecodePositiveInteger() { BenDecoder decoder = DecoderForString("i3e"); Assert.AreEqual(3L, decoder.ReadInt()); }