Ejemplo n.º 1
0
        public static DHTMessage CreateGetPeersResponse(
            BString transactionID, byte[] nodeId, byte[] infoHash,
            IList <IDHTPeer> peersList, IList <DHTNode> nodesList)
        {
            BList values = DHTHelper.CompactPeers(peersList);
            var   nodes  = new BString(DHTHelper.CompactNodes(nodesList));

            BDictionary sendData = new BDictionary();

            sendData.Add("t", transactionID);
            sendData.Add("y", "r");

            var r = new BDictionary();

            r.Add("id", new BString(nodeId));
            r.Add("token", new BString(infoHash.Take(2)));
            if (values != null)
            {
                r.Add("values", values);
            }
            r.Add("nodes", nodes);
            sendData.Add("r", r);

            return(new DHTMessage(MessageType.Response, QueryType.None, sendData));
        }