public static DHTMessage CreateGetPeersResponse( BString transactionID, DHTId nodeId, DHTId infoHash, IList <IDHTPeer> peersList, IList <DHTNode> nodesList) { BList values = DHTNode.CompactPeers(peersList); var nodes = new BString(DHTNode.CompactNodes(nodesList)); BDictionary sendData = new BDictionary(); sendData.Add("t", transactionID); sendData.Add("y", "r"); var r = new BDictionary(); r.Add("id", nodeId.ToBencodedString()); r.Add("token", new BString(infoHash.Data.SubArray(0, 2))); if (values != null) { r.Add("values", values); } r.Add("nodes", nodes); sendData.Add("r", r); return(new DHTMessage(MessageType.Response, QueryType.None, sendData)); }
public static DHTMessage CreateAnnouncePeerResponse(BString transactionID, DHTId nodeId, IList <DHTNode> nodesList) { var nodes = new BString(DHTNode.CompactNodes(nodesList)); BDictionary sendData = new BDictionary(); sendData.Add("y", "r"); sendData.Add("t", transactionID); var r = new BDictionary(); r.Add("id", nodeId.ToBencodedString()); r.Add("nodes", nodes); sendData.Add("r", r); return(new DHTMessage(MessageType.Response, QueryType.None, sendData)); }