public void Test_GetRandomHashID()
        {
            var randShaId = DHTHelper.GetRandomHashID();

            Assert.IsNotNull(randShaId);
            Assert.AreEqual(20, randShaId.Length);
        }
Beispiel #2
0
        public void Test_PeersFoundEventArgs()
        {
            byte[]            infoHash = DHTHelper.GetRandomHashID();
            List <IPEndPoint> peers    = new List <IPEndPoint>();
            var evt = new PeersFoundEventArgs(infoHash, peers);

            Assert.IsNotNull(evt);
            Assert.AreEqual(infoHash, evt.InfoHash);
            Assert.AreEqual(peers, evt.Peers);
        }
        public void Test_CreateGetPeersQuery()
        {
            var        tid      = DHTHelper.GetTransactionId();
            var        nodeId   = DHTHelper.GetRandomID();
            var        infoHash = DHTHelper.GetRandomHashID();
            DHTMessage msg      = DHTMessage.CreateGetPeersQuery(tid, nodeId, infoHash);

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Query, msg.Type);
            Assert.AreEqual(QueryType.GetPeers, msg.QueryType);
            // TODO: test contents
        }
        public void Test_CreateAnnouncePeerQuery()
        {
            var        tid      = DHTHelper.GetTransactionId();
            var        nodeId   = DHTHelper.GetRandomID();
            var        infoHash = DHTHelper.GetRandomHashID();
            DHTMessage msg      = DHTMessage.CreateAnnouncePeerQuery(tid, nodeId, infoHash, 1, 1, new BString("XX"));

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Query, msg.Type);
            Assert.AreEqual(QueryType.AnnouncePeer, msg.QueryType);
            // TODO: test contents
        }
Beispiel #5
0
        private void SendShakeHand()
        {
            var peer = DHTHelper.GetRandomHashID();
            var list = new List <byte>();

            list.Add(0x13);
            list.AddRange(Encoding.ASCII.GetBytes("BitTorrent protocol"));
            list.AddRange(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 });
            list.AddRange(InfoHash);
            list.AddRange(peer);
            fSocket.Send(list.ToArray(), SocketFlags.None);
        }
        public void Test_CreateGetPeersResponse()
        {
            var        tid      = DHTHelper.GetTransactionId();
            var        nodeId   = DHTHelper.GetRandomID();
            var        infoHash = DHTHelper.GetRandomHashID();
            var        peers    = new List <IDHTPeer>();
            var        nodes    = new List <DHTNode>();
            DHTMessage msg      = DHTMessage.CreateGetPeersResponse(tid, nodeId, infoHash, peers, nodes);

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Response, msg.Type);
            // TODO: test contents
        }
Beispiel #7
0
        public static DHTMessage CreateFindNodeQuery(BString transactionID, byte[] nodeId)
        {
            BDictionary sendData = new BDictionary();

            sendData.Add("t", transactionID);
            sendData.Add("y", "q");
            sendData.Add("q", "find_node");

            #if IP6
            var want = new BList();
            want.Add("n6");
            sendData.Add("want", want);
            #endif

            var args = new BDictionary();
            args.Add("id", new BString(nodeId));
            args.Add("target", new BString(DHTHelper.GetRandomHashID()));
            sendData.Add("a", args);

            return(new DHTMessage(MessageType.Query, QueryType.FindNode, sendData));
        }