Example #1
0
        public void BucketList_Put()
        {
            BucketList bucketList = new BucketList(KadId.GenerateRandom(), 20);

            byte[] kadId = new byte[20];

            for (int i = 0; i < 20; i++)
            {
                kadId[19] = (byte)(i + 1);
                var contact = new kademlia_dht.Base.KadContactNode(new KadId(kadId), new System.Net.IPEndPoint(IPAddress.Loopback, 20000));
                bucketList.Put(contact);
                Thread.Sleep(1000);
            }
            kadId[19] = 20;
            Assert.IsTrue(bucketList.Put(new KadContactNode(new KadId(kadId), new IPEndPoint(IPAddress.Loopback, 20000))) == BucketList.BucketPutResult.BucketIsFull);
        }
Example #2
0
        public bool PingAndPutNewContact(IPEndPoint contactEp)
        {
            if (contactEp == null)
            {
                throw new ArgumentNullException("contactEp");
            }

            var pingMsg = Ping(contactEp);

            if (pingMsg == null)
            {
                return(false);
            }

            Id contactId = new Id((byte[])pingMsg.Payload["id"]);

            return(BucketList.Put(new ContactNode(contactId, contactEp)) == BucketList.BucketPutResult.Success);
        }