private void ProcessNodesStr(IPEndPoint ipinfo, BString nodesStr) { if (nodesStr != null && nodesStr.Length != 0) { List <DHTNode> nodesList = null; if (nodesStr.Value.Length % DHTHelper.CompactNodeRecordLengthIP4 == 0) { nodesList = DHTHelper.ParseNodesListIP4(nodesStr.Value); } else if (nodesStr.Value.Length % DHTHelper.CompactNodeRecordLengthIP6 == 0) { nodesList = DHTHelper.ParseNodesListIP6(nodesStr.Value); } else { throw new Exception("sd"); } fLogger.WriteDebug("Receive {0} nodes from {1}", nodesList.Count, ipinfo.ToString()); if (nodesList.Count > 0) { fRoutingTable.UpdateNodes(nodesList); fLastNodesUpdateTime = DateTime.Now.Ticks; } } }